Этот код определяет функцию с именем firstNonRepeatingElement(), которая принимает единственный параметр, строку, и возвращает первый неповторяющийся символ в этой строке.

Сначала функция инициализирует пустой объект с именем obj. Затем он использует цикл for-of для перебора каждого символа во входной строке. Для каждого символа код проверяет, существует ли уже этот символ в качестве ключа в объекте obj. Если это так, значение этого ключа (которое представляет количество раз, когда этот символ появляется в строке) увеличивается на 1. Если ключ еще не существует, он создается и ему присваивается значение 1.

После завершения цикла for-of функция использует цикл for-in для перебора каждого ключа в объекте obj. Для каждого ключа (который представляет уникальный символ во входной строке) код проверяет, равно ли значение этого ключа 1. Если это так, функция немедленно возвращает этот ключ (который является первым неповторяющимся символом в строке). нить).

Если цикл for-in завершается без нахождения ключа со значением 1, функция возвращает -1, чтобы указать, что неповторяющийся символ не найден.

В конце функция вызывается с тестовой строкой для ее проверки и возвращает первый неповторяющийся элемент.

function firstNonRepeatingElement(str) {
  const obj = {}
  for (let elem of str) {
    if (obj[elem]) {
      obj[elem] = obj[elem] + 1
    } else {
      obj[elem] = 1
    }
    // obj[elem] = obj[elem] ? obj[elem] + 1 : 1
  }
  // console.log('occurence', obj)

  for (let elem in obj) {
    if (obj[elem] == 1) {
      return elem
    }
  }

  return -1
}

var str = '1122343599787'
console.log(firstNonRepeatingElement(str))

Этот подход с использованием объекта для отслеживания количества появлений каждого символа в строке, а затем итерация по объекту для поиска первого неповторяющегося символа является эффективным способом решения этой проблемы. Он имеет временную сложность O(n), потому что он выполняет итерацию по входной строке один раз и по объекту один раз, где n — количество символов во входной строке.

Вот пример того, как можно использовать firstNonRepeatingElement() функцию:

let str = "abcabcdefgh"
let firstNonRepeatingChar = firstNonRepeatingElement(str)
console.log(firstNonRepeatingChar) // Output: d

В этом примере входная строка — «abcabcdefgh». Функция firstNonRepeatingElement вызывается с этой строкой в ​​качестве аргумента. Функция использует цикл for-of для перебора каждого символа во входной строке и подсчета их появления в объекте obj. Затем он использует цикл for-in для перебора каждой клавиши в объекте obj. Для каждого ключа (который представляет уникальный символ во входной строке) код проверяет, равно ли значение этого ключа 1. Он возвращает первый ключ со значением 1, в данном случае это «d».

Таким образом, вывод этого примера будет «d».

Спасибо за чтение. Приятного обучения 😄

Поддержите нашу публикацию, подписавшись на нее



Также обратитесь к следующим статьям.