-1
* 问题(字符串组合) interviewstreet.com *(字符串组合)从interviewstreet.com
给定两个字符串,写一个方法来决定,如果一个是 置换 另一个。您的解决方案应该考虑区分大小写,并将空白视为重要。
一组对象的排列是这些对象 排列成特定顺序的排列。例如,字符串“abc”,即“abc”,“acb”,“bac”,“bca”,“cab”以及 “cba”有六个排列组合 。
输出: 如果两个字符串是相互排列的,则返回1。 如果两个字符串不是彼此的排列,则返回0。
- ABC ACB驾驶室CBA BAC BCA
进口java.io. *;
进口的java.util。*;
public class解决方案{
private set置换;
public static void main(String args[]) throws Exception {
// Scanner sc = new Scanner(System.in);
//String string1 = sc.nextLine();
//String string2 = sc.nextLine();
String string1 = "str";
String string2 = "str";
Solution solution = new Solution();
int output = solution.permutation(string1, string2);
System.out.println(output);
}
public void stringPermuation(String s1, String s2) {
if (s2.length() > 0) {
for (int i = 0; i < s2.length(); i++) {
System.out.println(s1 + s2.charAt(i)+","+ s2.substring(0, i)+" +"+ s2.substring(i + 1));
stringPermuation(s1 + s2.charAt(i),
s2.substring(0, i) + s2.substring(i + 1));
}}
else{
permutations.add(s1);
System.out.println(s1);
}
}
public Set stringPermuation(String s) {
permutations = new HashSet<String>();
stringPermuation("", s);
return permutations;
}
private int permutation(String string1, String string2) {
int result = 0;
Set<String> setString1 = stringPermuation(string1);
Set<String> setString2 = stringPermuation(string2);
// create an iterator
System.out.println("There are total of " + setString1.size() + " permutations in String1:");
System.out.println("There are total of " + setString2.size() + " permutations in String2:");
if(setString1.size() == setString2.size())
result=IterateSet(setString1,setString2);
//Return 1 if string1 is a permutation of string2
//Return 0 if string1 is not a permutation of string2
return result;
}
public int IterateSet(Set setString1,Set setString2){
int i= 0;
Iterator<String> it = setString1.iterator();
while (it.hasNext()) {
if(setString2.contains(it.next()) && i == 0)
i=1;
}
return i;}}
这是隐藏在这里的问题吗? – Eran