Girdi: n kelimelerin listesi "kelime1 kelime2 word3 ... kelime-n"bir cümle JAVA kelime sunumunun bütün davaları bitiştirmek nasıl
Çıktı: Tüm vakaların birleştirme dizeleri listesi
public static List<String> PermuteWords(String s){
String[] ss = s.split(" ");
boolean[] used = new boolean[ss.length];
String res = "";
List<String> list = new ArrayList<String>();
permute(ss, used, res, 0, list);
return list;
}
private static void permute(String[] ss, boolean[] used,
String res, int level, List<String> list) {
if (level == ss.length && res != ""){
list.add(res);
return;
}
for (int i = 0; i < ss.length; i++) {
if (used[i]) {
continue;
}
used[i] = true;
permute(ss, used, res + " " + ss[i], level + 1, list);
used[i] = false;
}
}
public static void main(String args[]){
String inputString="word1 word2 word3";
List<String> test=PermuteWords(inputString);
for (int i = 0; i < test.size(); i++) {
System.out.println(test.get(i));
}
}
: Bu kodu deneyin
s1: "word1 word2"
s2: "word1 word3"
s3: "word2 word1"
s4: "word2 word3"
s5: "word3 word1"
s6: "word3 word1"
s7: "word1 word2 word3"
s8: "word1 word3 word2"
s9: "word2 word1 word3"
s10: "word2 word3 word1"
s11: "word3 word1 word2"
s12: "word3 word2 word1"
...
sm: "wordn...word3 word 2 word 1"
: olarak sunumunu Permutasyon
Çıktı:
s1: "word1 word2"
s2: "word1 word3"
s3: "word2 word1"
s4: "word2 word3"
s5: "word3 word1"
s6: "word3 word1"
herkes bu sorunu çözebilir mi:
word1 word2 word3
word1 word3 word2
word2 word1 word3
word2 word3 word1
word3 word1 word2
word3 word2 word1
o gibi bazı durumlarda eksik Ancak?
Olası çoğaltması [Bir sayı kümesinin tüm alt kümelerinin hesaplanması] (http://stackoverflow.com/questions/4640034/calculating-all-of-the-subsets-of-a-set-of-numbers) –
@PM 77-1 farklıdır, çünkü bu problem kelimelerin tümünde “word1 <-> word2” ve “word2 <-> word1” gibi problemleri çözmemiştir. –