3 回答
TA贡献1864条经验 获得超6个赞
我使用的算法非常简单。将每个字符设为字符串的第一个字符,然后查找与其他两个字符的组合。因此,对于字符c,a,t,组合为
c at
c ta
a ct
a tc
t ca
t ac
代码:
static void findWords(String str, int pos) {
if(str == null || pos < -1) {
return;
}
int len = str.length();
if(pos + 1 < len) {
findWords(str, pos + 1);
}
//find char swap positions
int pos1 = (pos + 1) % len;
int pos2 = (pos - 1 + len) % len;
char[] chars = str.toCharArray();
String str1 = new String(new char[] {chars[pos], chars[pos1], chars[pos2]});
String str2 = new String(new char[] {chars[pos], chars[pos2], chars[pos1]});
System.out.println(str1);
System.out.println(str2);
}
public static void main(String[] args) {
String word = new String("abc");
findWords(word, 0);
}
添加回答
举报