字符串之变形数
题目:给定2个字符串str1和str2,如果str1和str2出现的字符种类和每个字符出现的个数也一样,那么str1与str2互为变形数。请用函数实现。
例子:str1="123", str2="231" 返回 true
例子:str1="123", str2="2311" 返回 false;
解题思路
方法1:如果字符串str1和str2长度不一样肯定不是变形数,如果相等的话,假设出现的的字符编码为0~256,申请一个长度为256的整形数组map,map[a]=b,表示字符a出现了b次,然后遍历str1,比如遍历到‘a’,那么是a[97]++,,然后遍历str2,当遍历到‘a’,那么map[97]--,如果其中只要有一种情况小于0,那么肯定不是变形数字了,如果想不通,慢慢想,总会想得通的,加油。
方法2:既然str1和str2可以转换成字符编码0~256,而且每个可以把每个字符的编码加起来,如果2个字符编码都相等的话,那么是变形数,前提是字符串的长度是一样的的,以防1+2+3=2+4;的情况出现。
下面是实现的java代码
public class Changeword {public static void main(String[] args) {String str1="abcd",str2="abcdd",str3&#