如何获得给定字符串中的第一个唯一子字符串。
例如,我想找到被问到的唯一字符串“ tr6hrvjh ”
$string = "htr6hrvjhtr6hrvjhtr6hrvjhtr6hrvjh";
我尝试了 substr_count并使用for(),还尝试了嵌套循环。仍然无法让它工作你有什么方法可以检索唯一的字符串吗?还是可以使用正则表达式?我目前正在使用 php。如果你可以用其他编程语言做到这一点,请这样做。
- 编辑 -
好的。正是niftydude所说的唯一字符串 im 指的是重复。对于那个很抱歉。让我改述一下这个问题
$string (h) 中的第一个字符用作正在搜索的唯一字符串的“限制器”。它表示正在搜索的唯一字符串的结尾。
第二个字符 (t) 是唯一字符串的开始。这就是为什么我说“tr6hrvjh”
我所做的是我从第一个偏移量 [1] 即 (t) 开始循环 $string 中的每个字符。循环只会结束,如果
- 您找到了“限制器”字符,即“h”
- 例如,当您遍历已经拥有“tr6hrvjh”的 $string 时,该字符串已经重复了。在又几个循环之后,您再次检测到“tr6hrvjhtr6”。你的循环必须结束。
'unique' 字符串的条件是:
- 只能是字母数字
- 必须 >= 5
- $string 中的所有字符都必须在那个“唯一”字符串中。例如,如果 $string 是htr6ahrvjhtr6ahrvjhtr6ahrvjh,则唯一字符串必须是tr6ahrvjh而不是tr6ah,这会将 rvjh 留在 $string
请注意, $string 总是这样。第一个和第二个字符始终分别作为“唯一”字符串的最后一个和第一个字符。并且唯一的字符串总是在 $string 中重复,重复之间没有其他字符。
另一个问题是正在搜索的字符串中有两个 h。好吧,我希望你能理解。随意评论:D
- 编辑 -
到目前为止我遇到的测试字符串就像我给你的那些
htr6hrvjhtr6hrvjhÔi§¯ŸÍ©¥g§¬Ð™×ªhÖØ¡~¦ÓkÕ¬šÕª—©«</p>
htr6hrvjhtr6Ôi§¯ŸÍ©¥g§¬Ð™×ªhÖØ¡~¦ÓkÕ¬šÕª—©«</p>
512354651235465Ôi§¯ŸÍ©¥g§¬Ð™×ªhÖØ¡~¦ÓkÕ¬šÕª—©«</p>
5123546512354651235Ôi§¯ŸÍ©¥g§¬Ð™×ªhÖØ¡~¦ÓkÕ¬šÕª—©«</p>