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

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

查找給定字符串列表中字符串的所有字謎

查找給定字符串列表中字符串的所有字謎

PHP
阿波羅的戰車 2023-08-11 16:34:09
我最近開始學習數據結構和算法,我有一個在 PHP 中一直苦苦掙扎的問題。我能夠用 Python 實現它,但我很難用 PHP 實現同樣的功能。任何幫助,將不勝感激。*給定一個字符串數組,將字謎組合在一起。array('ate', ''map', 'eat', ''pat', 'tea' , 'tap') * 下面是我到目前為止所做的:function is_anagram($pharse1,$pharse2){  $status = false;  if($pharse1 && $pharse2){   $pharse1=strtolower(str_replace(" ","", $pharse1));   $pharse2=strtolower(str_replace(" ","", $pharse2));   $pharse1 = str_split($pharse1);   $pharse2 = str_split($pharse2);   sort($pharse1);   sort($pharse2);   if($pharse1 === $pharse2){   $status = true;   }   }  return $status;}
查看完整描述

1 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

你幾乎已經完成了。不太確定空格數是否也很重要,但就目前而言,我認為它確實重要。

  • 因此,拆分字符串以獲得單個字符的數組。

  • 按升序/非降序對它們進行排序。

  • 將其內爆回來以將其作為已排序的字符串獲得。

  • 正如您已經開始的 2 個步驟一樣,現在您只需將當前字符串放入一個數組中,其中排序鍵是當前字謎所屬的實際鍵。請參閱代碼以獲得更清晰的信息。

片段:

<?php


$map = [];


$data = array('ate', 'map', 'eat', 'pat', 'tea' , 'tap');


foreach($data as $str){

    $strSplit = str_split($str);

    sort($strSplit);

    $strSplit = implode("",$strSplit);

    $map[$strSplit][] = $str; 

}


print_r($map);

更新:


查看您的輸出格式,您最終可以執行以下操作以將它們回顯在一起:


echo implode(" ",array_merge(...array_values($map)));


查看完整回答
反對 回復 2023-08-11
  • 1 回答
  • 0 關注
  • 112 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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