我完全是 PHP 的新手。今天我遇到了一个我不知道如何解决的问题,即使在搜索谷歌和挖掘 SOF 之后。这是Anagram算法。
所以基本上,我理解这里的问题:当用户输入一个字符串时,我将它拆分并与我的库(给定数组)进行比较,然后我必须将它加入 2-3-...等字符以再次比较,这正是我现在卡住的地方,我不知道如何加入数组的元素。
这是我正在实现的代码,也是一个示例字典。
我有一个自制的字典,其中包含数组 $dict 中的这些元素。我有一个表格供用户输入字符串,输入的字符串将传递给下面的代码并声明为 $anagram。我必须拆分输入的字符串以与我的字典进行比较。但我不知道如何加入它们,比如比较 2 个字母、3 个字母......等等......等等,与字典。
<?php
$dict = array(
'abde',
'des',
'klajsd',
'ksj',
'hat',
'good',
'book',
'puzzle',
'local',
'php',
'e');
$anagram = $_POST['anagram'];
//change to lowercase
$anagram = strtolower($anagram);
//split the string
$test = str_split($anagram);
//compare with $dict for the first split without joining
for ($i=0; $i<strlen($anagram); $i++) {
if ($test[$i]==$dict[$i]) {
echo $test[$i]."<br />";
}
}
//problem: how to join elements of the array in the loops
//like user inputs "hellodes"
//after echo "e", how to join the elements like: h-e,h-l,h-l,h-o,h-d,h-e,h-s
//and then h-e-l,h-e-l,h-e-o...etc...
?>
我希望算法尽可能简单,因为我完全是新手。我很抱歉,因为我的英语不太好。最好的问候, Khiem Nguyen。