Есть строка, и надо написать алгоритм,который проверяет,есть ли в строке два одинаковых символа.
var stt = 'ABC';
var i;
var a;
for(i = 0; i<stt.length;i++) {
for(a = 1; a<stt.length; a++) {
if(stt.charAt(i) == stt.charAt(a)) {
console.log('true');
}
}
}
Но дело в том,что сравниваются два одних и тех же элемента и фактически,это выглядит так
if(stt.charAt(1) == stt.charAt(1)) {
console.log('true'); }
const foo = str => /(.).*\1/.test(str);
// проверка
['ABC', 'AABC', 'ABbC', 'ABCAD'].forEach(s => console.log(`'${s}': ${foo(s)}`));
Еще простой вариант:
const bar = str => str.length !== (new Set(str)).size;
Алгоритм (не тех выражений которые выше!), естесственно на JS, для краткости:
function baz(str) {
const len = str.length;
for (let c, i = 0; i < len; i++) {
c = str.charAt(i);
for (let j = i + 1; j < len; j++) {
if (str.charAt(j) === c)
return true;
}
}
return false;
}
var stt = 'asfafgadgjkasjfkladfkgjdflkgjkldfgj';
var temp = stt; // переносим во временную переменную
var exist = false; // выставляем флаг который будет определять есть ли в строке одинаковые символы
for(i = 0; i < temp.length; i++){ // тут все ясно должно быть идем по строке
for(j = i+1; j < temp.length; j++){ // проходим все символы от текущего до конца строки для поиска одинаковых символов
if(temp[i] == temp[j]){ // само сравнение
exist = true; // если символы одинаковые переводим флаг в true
temp = temp.split(temp[i]).join(''); // удаляем все одинаковые символы из временной строки(не обьязательно)
}
}
}
console.log(exist);
Для оптимизации можно во второй цыкл break закинуть)
Я бы так сделал:
// разбиваем строку на символы и применяем свертку
let counts = 'ABBCA'.split("").reduce((a, c) => {
// считаем символы в аккумуляторе
return (a[c] = ++a[c] || 1) && a;
},{});
// ищем в результате свертки счетчик со значением больше 1
let result = Object.values(counts).filter(i => i != 1).length > 0;
console.log(counts)
console.log(result)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перешёл на mongoDB и так получилось, что найденные данные мне нужно записать в объект thisbuyer, но это не работает
Есть функция для поискаСейчас фильтрация идет по словам с соответствующей языковой раскладкой клавиатуры