网站内容不收录,asp.net企业网站,保定网站建设维护,哪里可以检测药物成分字符串之变形数
题目:给定2个字符串str1和str2,如果str1和str2出现的字符种类和每个字符出现的个数也一样,那么str1与str2互为变形数。请用函数实现。 例子:str1=123, str2=231 返回 true
例子:str1=123, str2=2311 返回…字符串之变形数
题目:给定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#