我有这个词。
AGHIJKLAL
我需要从该字符串中搜索第一个重复的单词,答案是A
,因为在这些句子中重复的单词是A
单词。
例如。
输入0
JKLMKL
输出0
K
输入1
nmopqrqn
输出1
q
我已经制作了这个程序。
<?php
$input = fgets(STDIN);
$rows = str_split(trim($input));
$arr = array();
$index = 0;
while (True) {
$reset = False;
$ind = 0;
foreach ($rows as $row => $val) {
if(!isset($rows[$row+1])){
continue;
}
if($rows[0] !== $rows[$row+1]) {
$reset = True;
continue;
} else {
$reset = True;
$arr[$index] = $rows[0];
$index++;
break;
}
}
if (!$reset) {
break; # break out of the while(true)
}else{
unset($rows[0]);
$rows = array_values($rows);
}
# otherwise the foreach loop is `reset`
}
echo "{$arr[0]} \n";
?>
但是当我使用 INPUT 1 值时,它将返回n
值。我的代码可能出什么问题了?
答案 0 :(得分:2)
首先,使用str_split()
将字符串转换为数组,然后检查每个字符。
//convert string into array
$strArr = str_split('AGHIJKLAL');
$temp = []; //temporary array
foreach($strArr as $v){
//check each character if it is in temp array or not, if yes, character matched and exit from loop using break;
if(in_array($v, $temp)){
$repeatChar = $v;
break;
}else{ // if not matched store character into temp array.
$temp[] = $v;
}
}
echo $repeatChar;