我正在写一个Android word应用程序.我的代码包括将查找的字符串和一个7字母串的子串具有最小长度3的所有组合,然后所有可用的组合比较,每一个字在字典中找到的所有有效字的方法.我正在使用递归方法.这是代码.
// Gets all the permutations of a string.
void permuteString(String beginningString, String endingString) {
if (endingString.length() <= 1){
if((Arrays.binarySearch(mDictionary, beginningString.toLowerCase() + endingString.toLowerCase())) >= 0){
mWordSet.add(beginningString + endingString);
}
}
else
for (int i = 0; i < endingString.length(); i++) {
String newString = endingString.substring(0, i) + endingString.substring(i + 1);
permuteString(beginningString + endingString.charAt(i), newString);
}
}
// Get the combinations of the sub-strings. Minimum 3 letter combinations
void subStrings(String s){
String newString = "";
if(s.length() > 3){
for(int …Run Code Online (Sandbox Code Playgroud) 我正在编写一个Android应用程序,你有一个递归函数,它接受一个字符串并返回该字符串及其所有子字符串的所有排列.这种方法很耗时,特别是对于较长的字符串.我去了这个网站,询问是否有更有效的方法来排列字符串,并且有几个人建议使用Trie树.当然,trie的速度要快得多,但我也注意到Trie的性能随着更长的琴弦而提高.例如,使用7个字符长的字符串,Trie的速度提高了约2.5倍.一条10字符串,Trie的速度快了约5倍,12条字符串的Trie速度提高了约10倍.有谁知道为什么Trie的表现会因为更长的琴弦而变得更好?