Пожалуйста, помогите решить задачу

87
16 февраля 2022, 12:00

Надо написать функцию, которая будет заменять все повторяющиеся символы в строке на ")", а неповторяющиеся на "(". Подскажите пожалуйста решение.

Сам я написал вот это, но оно не работает

function duplicateEncode(word){ 
    let result = ""; 
    for(i = 0; i <= word.length; i++ ) { 
      let isIt = word.indexOf(word[i], 0); 
      if(isIt == -1) { 
        result += ')'; 
      }else{ 
        result += '('; 
      } 
    } 
    return result; 
}

Answer 1

function duplicateEncode(word){ 
    return [...word].map((c, i, arr) => arr.indexOf(c) == arr.lastIndexOf(c) ? ')' : '(').join(''); 
} 
 
console.log(duplicateEncode('abcabdef'))

Answer 2

Можно так

 function duplicateEncode(word){
     let result = "";
     for(i = 0; i < word.length; i++ ) {
         if(word.indexOf(word[i]) != word.lastIndexOf(word[i]) ) {
            result += ')';
         }else{
            result += '(';
         }
     }
     return result;
 }
Answer 3

просто ещё один способ

const isRaw = (q) => q instanceof Object && 'raw' in q; 
const raw2str = (str) => isRaw(str) ? String.raw(str) : str; 
// -- 
function replace(_str, props = new replace.Props) { 
    const r = (str, i, arr) => (delete arr[i], props.ignoreList && props.ignoreList.has(str) ? str : props.setList.has(str) ? props.A : !!~arr.indexOf(str) ? (props.setList.add(str), props.A) : props.B || str); 
    return Array 
        .from(raw2str(_str)) 
        .map(r) 
        .join(props.sep); 
} 
(function (replace) { 
    class Props { 
        constructor(props) { 
            this.A = '-'; 
            this.ignoreList = new Set(['\n', ' ']); 
            this.sep = ''; 
            this.setList = new Set(); 
            Object.assign(this, props); 
        } 
    } 
    replace.Props = Props; 
})(replace || (replace = {})); 
// -- 
hyperHTML.bind(document.body) ` 
<pre class="q"> 
    <div class="q b"> 
        Задание просто. 
        Написать функцию, которая будет заменять символы в строке 
        - повторяющиеся на ")", 
        - неповторяющиеся на "(" 
    </div> 
    <div class="q r">${replace ` 
        Задание просто. 
        Написать функцию, которая будет заменять символы в строке 
        - повторяющиеся на ")", 
        - неповторяющиеся на "(" 
        `} 
    </div> 
</pre> 
`;
q { 
    background-color: aliceblue; 
} 
div.q { 
    position: fixed; 
    top: 0; 
    left: 0; 
    right: 0; 
    bottom: 0; 
    background-color: aliceblue; 
} 
.q.b  { visibility: hidden; } 
.q.r  { visibility: visible;  } 
pre.q:hover .b  { visibility: visible;  } 
pre.q:hover .r  { visibility: hidden; }
<script src="https://unpkg.com/hyperhtml@latest/min.js"></script>

а там: немного типов и коментов

READ ALSO
Загрузка JSON один раз в начале работы приложения

Загрузка JSON один раз в начале работы приложения

Приложение на AngularJSЕсть корневой модуль:

73
Javascript Нажатие кнопки на странице в браузере в определённое время

Javascript Нажатие кнопки на странице в браузере в определённое время

Мне нужно организовать нажатие кнопки на веб-странице в определённое время, которое я задамКод, который я вставляю в консоль хрома не работает,...

122
Оценить код, Может как-то улучшить

Оценить код, Может как-то улучшить

Ребят, не оценивайте верстку и адаптивностьГлавное - js код, а именно фильтрация https://github

100
vue Отфильтровать список по клику

vue Отфильтровать список по клику

Есть небольшой vue проект: codesandbox

134