JavaScript: найдите первый повторяющийся символ в строке — методы и примеры

Чтобы найти первый повторяющийся символ в строке в JavaScript, можно использовать несколько методов. Вот несколько подходов:

Метод 1: использование хеш-карты

Вы можете перебирать символы в строке и сохранять их частоты в хеш-карте. Как только вы встретите символ, который уже существует в хэш-карте с частотой больше 1, вы нашли первый повторяющийся символ.

function findFirstRepeatedChar(str) {
  const charMap = {};
  for (let char of str) {
    if (charMap[char]) {
      return char;
    }
    charMap[char] = 1;
  }
  return null; // If no repeated character is found
}
const inputString = "example";
const repeatedChar = findFirstRepeatedChar(inputString);
console.log("First repeated character:", repeatedChar);

Метод 2: использование массива IndexOf

Вы можете преобразовать строку в массив и использовать метод indexOf, чтобы найти первое вхождение каждого символа. Если индекс текущего символа не равен индексу последнего, значит, он повторяется.

function findFirstRepeatedChar(str) {
  for (let i = 0; i < str.length; i++) {
    if (str.indexOf(str[i]) !== str.lastIndexOf(str[i])) {
      return str[i];
    }
  }
  return null; // If no repeated character is found
}
const inputString = "example";
const repeatedChar = findFirstRepeatedChar(inputString);
console.log("First repeated character:", repeatedChar);

Метод 3: использование набора

Вы можете перебирать символы в строке и использовать Set для отслеживания встречающихся символов. Если символ уже присутствует в наборе, это первый повторяющийся символ.

function findFirstRepeatedChar(str) {
  const charSet = new Set();
  for (let char of str) {
    if (charSet.has(char)) {
      return char;
    }
    charSet.add(char);
  }
  return null; // If no repeated character is found
}
const inputString = "example";
const repeatedChar = findFirstRepeatedChar(inputString);
console.log("First repeated character:", repeatedChar);

Обратите внимание, что приведенные выше примеры кода предполагают, что входная строка содержит только буквенно-цифровые символы и не содержит пробелов или специальных символов.