-1

私は stringAABBBCCCDABBAACBBを持っています。これで Character の最も多くの出現を見つける必要があります。どうすればこれを見つけることができますか??

上記の文字列では、7 を返す必要があります。B は 7 回、つまり最大です。

$str = "AABBBCCCABB";
$strArray = count_chars($str,1);

foreach ($strArray as $key=>$value)
{
    echo "The character <b>'".chr($key)."'</b> was found $value time(s)<br>";
    //$highest=chr($key);
    if(isset($highest) && $highest>chr($key))
    {
        $highest=chr($key);
    }
}
echo "<br/><br/>Highest value is ::".$highest;

私が試した上記のコード、

試してみましたが、機能が完璧ではありません。どの機能をphp使用すればよいですか?

4

6 に答える 6

2

これにはループは必要ありません。array_search()最も繰り返される値のキーを見つけるために使用しchr()、それに対して使用します。

$str = "AABBBCCCDABBAACBB";
$strArray = count_chars($str,1);
echo chr(array_search(max($strArray), $strArray));

出力:

B

デモ!

于 2013-11-02T18:31:25.360 に答える
2
$string="AABBBCCCABB";
foreach (str_split($string) as $s){
    if (isset($counts[$s])) continue;
    $counts[$s]=substr_count($string, $s);
    echo "The character <b>'" . $s . "'</b> was found ".$counts[$s]." time(s)<br>";
}
$maxs=array_keys($counts, max($counts));
echo "Highest value is ::'".$maxs[0];
于 2013-11-02T18:26:43.750 に答える
0

この解決策を試してください。これが解決に役立つことを願っています。

$string  =  "AABBBCCCABB";
$letters = array_count_values(str_split($string));
$val = array_search(max($letters), $letters);
echo $val;
于 2013-11-02T18:31:27.400 に答える
0

これを試して..

echo maxCountChar("AABBBCCCDABBAACBB");

function maxCountChar($string){
    foreach (str_split($string) as $s){
        $counts[$s]=substr_count($string, $s);
    }
    $maxs=array_keys($counts, max($counts));
    $num = substr_count($string, $maxs[0]);
    return "The character <b>$maxs[0]</b> was found <b>$num</b> times";
}

出力

The character B was found 7 times
于 2013-11-02T18:31:38.697 に答える
0

あなたの方法によるコードの解決策:

$str = "AABBBCCCABB";
$strArray = count_chars($str,1);
$highest = $str[0];
$times = 0;

foreach ($strArray as $key=>$value){
    echo "The character <b>'".chr($key)."'</b> was found $value time(s)<br>";
    //$highest=chr($key);
    if($times < $value)
    {
        $times = $value;
        $highest=chr($key);
    }

}

  echo "<br/><br/>Highest value is ::".$highest;

でも、Alma Do さんの回答の方が使いやすいです。

于 2013-11-02T18:27:24.717 に答える