【问题标题】:get all possible substrings from a string in php most fast solution?从 php 最快的解决方案中的字符串中获取所有可能的子字符串?
【发布时间】:2012-06-21 22:00:09
【问题描述】:

目前我有一个函数试图获取所有子字符串的列表,但它还没有完全完成。我使用的最小字符为 4。什么是补充这一点的好方法:

我也需要找“预测”之类的词,怎样才能做到最好最快?

输出

Word:      predictions
Substring: predictions
Substring: redictions
Substring: edictions
Substring: dictions
Substring: ictions
Substring: ctions
Substring: tions
Substring: ions

【问题讨论】:

  • 这些必须是真实的单词吗?此外,在这种情况下,将100 传递给substr() 是不必要的。 RTFM
  • @Jason 不,他们不需要你在 100 上的实际单词,这应该是提供给函数的最长单词的字符串长度。
  • 没有。如果您阅读手册,则在您的情况下根本不应该通过。看我的回答。

标签: php foreach increment substr


【解决方案1】:

以下将在同一循环中创建一个从单词的左右修剪到长度为4的子字符串。这是我理解的规范。

$length = strlen($word) - 4;
for ($i = 1; $i <= $length; ++$i) {
    echo "left = ", substr($word, $i), PHP_EOL;
    echo "right = ", substr($word, 0, -$i), PHP_EOL;
}

假设单词是指子字符串

注意:我还添加了最小长度为 4 个字符的逻辑,并微优化了 for 循环(静态 limit 和预增量 计数器)。

【讨论】:

  • 感谢完全做到了,聪明的做法虽然我不知道我是否完全得到了 for ($i = 1; $i
  • 查看更新,如果您对 for 循环仍有疑问,请告诉我。
猜你喜欢
  • 2016-08-20
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 2020-12-16
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多