亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php如何匹配字符串中重復的子字符串

php如何匹配字符串中重復的子字符串

PHP
拉風的咖菲貓 2019-03-04 19:33:11
比如有如下的字符串: $str = "cpucpucpucpucpucpucpucpucpcupcpu"; $str1="lovelovelovelovelovelovelovelovelovehellohellohellohellohahaha"; 想要得到的結果是: $str中出現次數最多的子字符串是 cpu。 $str1中出現次數最多的字符串是 love和hello。 大家幫忙給指導指導。
查看完整描述

4 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

$len = strlen($str);
$flag['num'] = 0;
$flag['str'] = '';
$flag['len'] = 0;
for($i = 0; $i < $len-1; $i++){
    for ($j = 2; $j < $len - 1 - $i; $j++) {
        $tar = substr($str, $i, $j);
        $count = substr_count($str, $tar);
        if($count >= $flag['num']){
            $flag['num'] = $count;
            $flag['str'] = $tar;
        }
    }
}
var_dump($flag);

$str 中重復最多的顯然是 cp

查看完整回答
反對 回復 2019-03-18
?
www說

TA貢獻1775條經驗 獲得超8個贊

查看完整回答
反對 回復 2019-03-18
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

個人覺得,如果僅僅是給出一個連續的字符串,也沒有明確說明統計什么單詞出現的次數,這種情況下:

  1. 首先得有一個中英文字詞大全
  2. 一個個進行組合,比如第一個字符和第二個字符進行組合,在字詞大全中查找是否有這么個字或詞!如果有,統計他出現的次數,第一個和第三個進行組合...直到第一個和第 n 個 .....,這是兩個字符進行組合,接下去是三個字符進行組合 ... 等第。等第一個字符所有可能性組合完成,第二個字符以此類推。
  3. 最后對統計得出的結果進行排序,返回出現次數最高的字或詞

個人覺得單第一個條件就難以滿足....,所以,這種想法不太可能實現!

如果你給出一個有明確分隔符字符串,比如有空格的,那還好。或者說給出一個任意字符串(連續都無所謂),但是你很明確知道要統計其中什么字、詞的數量,比較得出頻率最高的結果,那都很好實現 ....

查看完整回答
反對 回復 2019-03-18
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

有個疑問,出現最多的字符串是已經給定的幾個來判別,還是說該字符串中所有子串,然后取查其最多的?

  1. 如果是給定的一組字符串(字典),只需要使用substr_count()來統計
  2. 如果是所有子串的情況,就需要計算出該字符串的所有子串(非空),如cpucpucpucpucpucpucpucpucpcupcpu 中的c,pu也屬于最多的
查看完整回答
反對 回復 2019-03-18
  • 4 回答
  • 0 關注
  • 883 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號