例题:判断字符的变形词)"/>
相关String的算法学习(例题:判断字符的变形词)
package BATZTSuanfa.String;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;/*给定两个字符串str1和str2 ,如果str 1和str2中出现的字符种类样且每种字符出现的次数也一样,那么str1与str2互为变形词,请实现函数判断两个字符串是否互为变形词。举例:str1=" 123”,str2=" 231”。返回true。str1=" 123" ,str2=" 2331"。返回false.*/
public class AL2_BianXingCi {public boolean jugeChangeWord(String str1, String str2) {char[] c1=str1.toCharArray();char[] c2=str2.toCharArray();//先判断两个字符的长度是否相等不相等肯定不是if (c1.length!=c2.length){return false;}HashMap<Character,Integer> a=new HashMap();//把单个字符串放到map中for (int i = 0; i <c1.length ; i++) {if (a.containsKey(c1[i])){a.put(c1[i],a.get(c1[i])+1);}else {a.put(c1[i],1);}}//在把c2中的字符在map中减出去,如果有没有的直接返回falsefor (int i = 0; i <c2.length ; i++) {if (a.containsKey(c2[i])){a.put(c2[i],a.get(c2[i])-1);}else {return false;}}//用迭代器查看是否有剩的字符Iterator iter = a.entrySet().iterator();while (iter.hasNext()){Map.Entry entry = (Map.Entry) iter.next();Object val = entry.getValue();if (Integer.parseInt(val.toString())>0||Integer.parseInt(val.toString())<0){return false;}}return true;}public static void main(String[] args) {AL2_BianXingCi a=new AL2_BianXingCi();System.out.println(a.jugeChangeWord("1223","2331"));}
}
更多推荐
相关String的算法学习(例题:判断字符的变形词)
发布评论