首页 > 代码库 > 给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串

给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串

 1 /* 2  * 给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串,其实也就是变位词问题 3  * 比如说  a=‘abc‘ b=‘acb‘是可以通过a变成b的 4  * 思路; 5  * 1.应进行分析,变位词区分大小写吗?比如God和dog是变位词?还需要考虑空格问题? 6  * 在这里我们假定是区分大小写的。 7  * 2.比较两个字符串时,如果它们的长度都不相等了,那肯定不是变位词 8  *  9  * 10  * */11 12 public class IsSameString {13 14     public static void main(String[] args) {15         // TODO Auto-generated method stub16         String s="abcd";17         String t="dcba";18         IsSameString iss=new IsSameString();19         boolean flag=iss.permutation(s, t);20         if(flag)21             System.out.println("变位词");22         else23         System.out.println("不是变位词");24 25     }26     /*27      * 如果两个是变位词的关系,那么它们都拥有相同的字符,只不过顺序不同,28      * 对它们进行排序的话,会得到相同的字符串顺序29      * 可以利用这一点进行判断30      * 31      * */32     public String sort(String s)33     {34         char[] content = s.toCharArray();35         java.util.Arrays.sort(content);36         return new String(content);37     }38     public boolean permutation(String s,String t)39     {40         if(s.length()!=t.length())41             return false;42         return sort(s).equals(sort(t));43     }44     45     46 47 }

 

给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串