如何获得一个句子中所有单词的排列组合。例如:如果句子是“C#不是java”, 输出应该是,1)c#不是java 2)c#java不是3)java不是c#4)java c#不是5)不是java c#6)不是c#java等。找到句子中所有单词的排列组合
2
A
回答
1
试试看,如果这对你有用。
public static List<string> PermuteWords(string s)
{
string[] ss = s.Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries);
bool[] used = new bool[ss.Length];
string res = "";
List<string> list = new List<string>();
permute(ss, used, res, 0, list);
return list;
}
private static void permute(string[] ss, bool[] 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;
}
}
1
分离到这个两个任务:
- 拆分句子译成话
- 执行排列
而且,除此之外,什么副本?
“绿色环保袋” - 如果你看到我的观点,这句话有两个“排列组合”。
注意:它不是纯粹的asp.net,它更像是一个排列问题。一旦你有了排列,当然你可以把它们渲染成HTML。
0
在这个例子中你有3个词语意味着对于第一个字有3种可能性用于第二字您有2种可能性和第三字你只有1. 排列的没有重复的量3! (3 * 2 * 1)= 6.
第一句话|第二个字|第三个字
(3件)| (2例)| (1例)
另一个例子是4个单词。 4! = 24.
(一般情况:n!)...
Ex。 (这个例子可以用单词来实现)。
无重复的排列。
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 3 2
1 4 2 3
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
2 4 3 1
2 4 1 3
3 1 2 4
3 1 4 2
3 2 1 4
3 2 4 1
3 4 2 1
3 4 1 2
4 1 2 3
4 1 3 2
4 2 1 3
4 2 3 1
4 3 2 1
4 3 1 2
0
我只是修改上面的版本:
import java.util.*;
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;
}
}
你也可以使用下面的代码来测试这些功能:
List<String> ls=new ArrayList<String>();
ls = PermuteWords(str);
Iterator it=ls.iterator();
int i = 0;
while(it.hasNext())
{
String value=(String)it.next();
System.out.println(++i + " " + value);
}
+0
没有意识到它是C#哈哈 – Dima 2010-08-05 03:00:06
相关问题
- 1. 的Javascript:想找到句子中的所有单词,@
- 2. 如何使用Regex找到所有单词的句子?
- 3. 如何用scala组合器匹配句子中的所有单词?
- 4. 将单词分解成所有可能的“子词” - 所有可能的组合
- 5. 如何将句子的单词组合成组合术语?
- 6. 如何找到句子中有'w'的第一个单词
- 7. 解析出单词的所有组合
- 8. 在python中重新排列给定句子中的单词
- 9. 如何使用排列从输入中找到所有可能的单词?
- 10. 找到所有的组合中的Ruby
- 11. 找到所有组合UNIX
- 12. GroupBy所有可能的排列组合
- 13. 找到从阵列中的所有组合序列JS
- 14. java中一个句子中所有子字符串的组合
- 15. preg_replace在句子中的“单词”和“单词”。在句子结尾
- 16. 如何找到一列中的单词/单词出现在另一列中构成一个句子
- 17. 有没有办法找到Python中句子中第二长的单词?
- 18. 从句子中删除除第一个单词以外的所有单词
- 19. 排序列表中的一组单词
- 20. Python:找到所有可能的字符组合与字符序列(分词)
- 21. 找到句子中单词的位置和频率
- 22. 根据与句子边界的距离如何排列单词
- 23. 查找数组中的所有组合
- 24. 获取句子列表的词频,但未组合。 (python)
- 25. 找到Python的所有不同组合
- 26. 获取数组中的所有单词
- 27. 在句子中找到代词和名词之间的关系
- 28. 查找字典列表中的单词的所有发生
- 29. 组合单词,
- 30. 与集合中的所有单词匹配的所有项目
如果你告诉我们你已经尝试过,我们可以帮助您解决问题。 – sblom 2010-04-14 08:25:19
你是否为做这个家伙的功课感到自豪? – 2010-08-05 03:09:48