Проверка палиндрома
Линейный тип данных называется палиндромом, если он читается одинаково справа налево, например, слово «анна».
Дана строка, необходимо понять, можно ли завести палиндром в случае переносов между его буквами.
Например, в случае строки «aabb» вы можете легко получить палиндром «baab». Однако в случае строки «abcda» невозможно получить палиндромный текст при любых перемещениях. Необходимо написать функцию Solution, которая получает данный тип линии, возвращает true или false, в зависимости от того, удастся ли получить палиндром из данной строки или нет.
function solution(x) {
if (x===x.split("").reverse().join("")) { // проверяет палиндром или нет
return true
}
for (var i = 0; i < x.length; i++) {
//тут думаю надо поменять местами элементы и проверять заново,но как не знаю (
} }
console.log(solution("aabb")) // true
console.log(solution("cabdefg")) // false
console.log(solution("aaabbaaa")) // true
console.log(solution("zaa")) // true
Проверял посчитать количество повторяющих элементов потом сравнить с массивом,но не получил решение ((
function solution(x) {
var k = 0
if (x===x.split("").reverse().join("")) {
return true
}
for (var i = 0; i < x.length; i++) {
if (x[i]==x[i+1]) {
k++
}
}
console.log(k)
return k>=x.length/2?true:false }
Ответы (1 шт):
Автор решения: HTMLProgrammer
→ Ссылка
function solution(str){
let chars = new Set(str),
wasOdd = false;
for(let char of chars)
if(str.match(new RegExp(char, 'gi')).length % 2)
if(wasOdd)
return false;
else
wasOdd = true;
return true;
}