如何检查单词php中的第一个重复项?

时间:2019-01-02 05:06:00

标签: php

我有这个词。

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值。我的代码可能出什么问题了?

1 个答案:

答案 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;

Demo