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