java - 查找单词中的字母子集
Posted
技术标签:
【中文标题】java - 查找单词中的字母子集【英文标题】:java - Find subsets of letters in a word 【发布时间】:2015-05-09 16:55:57 【问题描述】:我正在尝试查找单词中字母子集的字谜;例如,如果单词是“hello”,程序将检查整个单词,然后检查缺少 1 个字母的单词,以此类推。
这是我的代码,我不确定我做错了什么:
import java.util.*;
import java.io.*;
class Perm
public static void main(String[] args)
System.out.println(permutations("hello"));
public static String permutations(String word)
String s = "";
for(int i=0; i<word.length(); i++)
char ithChar = word.charAt(i);
String newWord = word.substring(0,i) + word.substring(i+1);
s = permutations(newWord);
return s;
【问题讨论】:
请参阅***.com/questions/4240080/…,了解如何在 Java 中正确获取字符串的所有排列 【参考方案1】:我认为您不需要在方法中存在这种误解。尝试像这样重写它:
public static void permutations(String word)
for(int i = word.length(); i > 0; i--)
System.out.println(word.substring(0, i));
如果您不需要存储它也可以,仅用于打印。 但正如您猜测的那样,主要思想是使用递减循环。
【讨论】:
【参考方案2】:试试这样的:
public class Perm
public static void main(String[] args)
String word = "hello";
for(int i=word.length(); i!=0; i--)
String permutation = word.substring(0, i);
System.out.println(permutation);
每次循环运行时,它会从单词的末尾去掉一个字符,你会得到这样的输出:
hello
hell
hel
he
h
(也应该很容易将其更改为将字母从单词的开头删除)。
我希望这是您想要的,因为问题不是很清楚。 (您可能还想查看this answer。)
【讨论】:
以上是关于java - 查找单词中的字母子集的主要内容,如果未能解决你的问题,请参考以下文章
从 python 中的随机输入字母中查找单词。已经有啥算法可以使用/编码?