PHP之找任意两个字符串的最大相同部分
<p style="TEXT-INDENT: 2em">【题目背景】本题的题面是:<strong>输出任意两个字符串的最大相同部分。</strong>比如:字符串abcdsss和字符串sdcdsrf的最大相同部分是cds。 </p><p style="TEXT-INDENT: 2em">【题目解法】穷尽法 </p>
<?php
/** * 找两个字符串相同的部分 **/ function main($str1, $str2) { //将字符串转成数组 $arr1 = str_split($str1); $arr2 = str_split($str2); //计算字符串的长度 $len1 = strlen($str1); $len2 = strlen($str2); //初始化相同字符串的长度 $len = 0; //初始化相同字符串的起始位置 $pos = -1; for ($i = 0; $i < $len1; $i++) { for ($j = 0; $j < $len2; $j++) { //找到首个相同的字符 if ($arr1[$i] == $arr2[$j]) { //判断后面的字符是否相同 for ($p = 0; (($i + $p) < $len1) && (($j + $p) < $len2) && ($arr1[$i + $p] == $arr2[$j + $p]) && ($arr1[$i + $p] <> ""); $p++); if ($p > $len) { $pos = $i; $len = $p; } } } } if ($pos == -1) { return ; } else { return substr($str1, $pos, $len); } } echo main("abcdsss", "sdcdsrf"); ?>
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: PHP的数组底层实现
- 下一篇: tp 单字母函数详解