первый неповторяющийся символ
Имея строку s
, найдите и верните в ней первое вхождение неповторяющегося символа. Если такого символа нет, вернуть '_'
.
Пример
- Для
s = "abacabad"
вывод должен бытьfirstNotRepeatingCharacter(s) = 'c'
. - В строке
2
неповторяющихся символов:'c'
и'd'
. Вернутьc
, так как он появляется в строке первым. - Для
s = "abacabaabacaba"
вывод должен бытьfirstNotRepeatingCharacter(s) = '_'
. - В этой строке нет символов, которые не повторяются.
Во-первых, s.length
может равняться 1
, так что мы можем сразу разобраться с этим случаем!
function firstNotRepeatingCharacter(s) { if (s.length === 1) return s; }
Затем я разбиваю строку на массив. Затем я перебрал массив и проверил, равен ли первый индекс текущего символа последнему индексу. Если да, то у нас есть первый неповторяющийся символ и мы его возвращаем.
const chars = s.split(''); for (let i = 0; i < chars.length; i++) { const char = chars[i]; if (chars.indexOf(char) === chars.lastIndexOf(char)) return char; }
Если ни один из символов не совпадает, мы возвращаем _
. Вот и весь алгоритм вместе!
function firstNotRepeatingCharacter(s) { if (s.length === 1) return s; const chars = s.split(''); for (let i = 0; i < chars.length; i++) { const char = chars[i]; if (chars.indexOf(char) === chars.lastIndexOf(char)) return char; } return '_'; }
Я уверен, что есть гораздо лучший и более быстрый способ решить эту проблему. Оставьте свои решения в комментариях ниже!