最好用一个例子来描述。鉴于段落:
The longest string in this paragraph is not the shortest string in the paragraph because it is the longest string in the paragraph
我想首先按频率列出匹配子字符串的顺序,然后按长度列出,所以在这种情况下,它应该列出(不区分大小写)
The longest string in
the paragraph
is not the shortest string in
because
it is
this
上面按频率顺序列出子字符串,后跟长度,因此The longest string in
重复两次,是最长的子字符串。 is not the shortest string in
超过the paragraph
,但the paragraph
重复两次,因此会先列出。{/ p>
更新(基于AlexC和MattBurland的观察):
即使空格字符或in
等子字符串比其他子字符串出现得多,如果它们已经包含在比其出现*长度更长的子字符串中,则不应列出它们。例如,in
出现3次,长度为6个字符(9个末尾包含空格),但由于9个字符比the paragraph
短,因此未列出。我希望这有道理吗?
答案 0 :(得分:0)
是的,就像其他人说的那样,如果从提供的示例中提取子字符串并修剪空格,您将获得一个字符串数组,如下所示:
string [] myArray = {“the”,“longest”,.... etc
现在,您可以做的是循环到数组中删除相似的字符串,同时增加它们的出现次数。然后,将此信息添加到列表中。
然后再次循环以按长度排序。但是,最后,列表中的字符串不能是单词的组合,除非输入字符串首先被空格分隔,而不是像$符号那样的空格。
“$ this $ $中最长的字符串不是$ $段落中的最短字符串,因为它是$段落中最长的字符串”
如果是这种情况,您只需执行与上述完全相同的过程,但将子字符串用$符号而不是空格分隔。