【Java】编写程序,确定一个字符串s的字符重新排列后能否变成另一个字符串t
在编写之前,应先核实字符集的大小,是否区分大小写,空白字符是否需要考虑
首先考虑两个字符串长度是否相等,如果不相等那么肯定不能通过重新排列变成另一个字符串
其次,如果两个字符串经过重新排序能变成对方,说明
1. 每个字符的个数是相同的
2. 排序后的两个字符串应该是相同的
import java.util.Arrays;
import java.lang.*;
public class Permutation {
public method_1
{
public String sort(String s)
{
char[] content = s.toCharArray();
java.util.Arrays.sort(content);
}
public boolean isPermu1(String s, String t)
{
if(s.length() != t.length())
{ return false; }
return sort(s).equals(sort(t));
}
}
public boolean isPermu2(String s, String t)
{
if(s.length() != t.length())
{ return false; }
int[] letters = new int[256]; //let's say it's ACSII
for (int c : letters)
{
letters[c] = 0;
}
char[] s_array = s.toCharArray();
for(char ch : s_array)
{
letters[ch]++;
}
for(int i = 0; i < t.length(); i++)
{
int c = (int)t.charAt(i);
if(--letters[c] <= 0)
{return false;}
}
return true;
}
}