我正在使用.NET2.0
我想在字符串列表中搜索混乱的字符串
string[] wordList = new string[] { "java", "csharp", "fortran", "cobol", "pascal", "perl", "flash" };
string findText = "spclaa";
// do stuff
我希望结果是“pascal” 如果没有找到“抱歉,没找到”
更新
答案 0 :(得分:4)
嗯,一种方法是:
值得注意的是,两个单词可能具有相同的字符内容但却不相等。例如,“neo”和“one”具有相同的字符,但显然不是同一个字。
<强>更新强>
正如保罗建议的那样,如果您只对与搜索词具有相同字符数的字符串进行排序,则效果会更好。
答案 1 :(得分:2)
闻起来像家庭作业
对findText中的字符进行排序。 对wordList中每个单词的字符进行排序并创建一个新列表。 将排序的findText与每个排序的单词进行比较。 如果得到匹配项,请在原始wordList中的相同索引处查找单词。
(您可以在比较它之前对wordList中的单词进行排序)
编辑:如果你真的不想对它们进行排序,
计算findText中每个字母的数量。
答案 2 :(得分:1)
一种方法可能是对每个字符串中的字符和比较字符串进行排序,并以这种方式进行比较。
java becomes aajv
csharp becomes achprs
pascal becomes aaclps
scplaa becomes aaclps
比较排序的字符串是否相等,如果没有匹配则返回未找到。
答案 3 :(得分:0)
1.过滤数组列表,如搜索字符串长度等于数组列表元素
2.比较数组列表元素中的每个字符。如果找到增量计数并删除该字符数组列表元素。
3.如果count等于搜索字符串而不是print数组元素,否则找不到元素
答案 4 :(得分:0)