@historydev
Острая аллергия на анимешников

Как решается эта задача?

Добрый день. Помогите пожалуйста. Решил попробовать порешать задачки, 3 решил. На этой возникла сложность, как мне получить английский алфавит допустим?

Тык

UPD: Всем спасибо! (Особенно юникод и примерам, буду копать)
  • Вопрос задан
  • 1124 просмотра
Решения вопроса 4
@iddqda
network engineer, netdevops
я вобще не прграммер, поэтому не претендую,
но сделал как то вот так примерно:

function LetterChanges(str) { 
  const alphabet = 'abcdefjhijklmnopqrstuvwxyz_'
  const vowel = 'aeiou'

  return str.toLowerCase().split('').map((c) => {     
    c = alphabet[alphabet.indexOf(c)+1];
    if (vowel.includes(c)) c = c.toUpperCase();
    if (c === "_") c = "A"
    console.log(c);
    return c;
  }).join('');   
}


з.ы. почему вопрос относится к категории сложный?
такие задачи на второй неделе обучения щелкают.
Ответ написан
Комментировать
@AleksRap
Следующий символ алфавита можно получить по юникоду символа. Подсказку я Вам дал, дальше копайте сами
Ответ написан
Комментировать
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Нажать на кнопку с решением и увидеть как: https://coderbyte.com/solution/Letter%20Changes#Ja...
Ответ написан
twobomb
@twobomb
function LetterChanges(str) { 
  str = str.split("").map((s)=> {
  	if(s.search(/[a-zA-Z]/) != -1){
      var s =String.fromCharCode(97 + (s.charCodeAt()-96)%26);
      if(["a", "e", "i", "o", "u"].includes(s))
        s = s.toUpperCase();
    }
   return s;
    
  });
  return str.join(''); 
}

P.S. У каждого символа есть код, получить можно через "a".charCodeAt() это будет 97, преобразовать 97 в "а" можно через String.fromCharCode(97) вернет "a". В английском алфавите 26 букв. Так как а первая буква алфавита и код ее 97, далее он идет на увеличение, то соответственно чтобы преобразовать их в числа по порядку, от 0 до 25 нужно вычесть 97 из кода. 122 это код буквы "z". Соответственно 123 это "{", поэтому тут нужна проверка если код 123 то нужно перейти на код 97, в начало алфавита. Ну когда у нас идет все по порядку, от 0 до 25 , проще взять остаток от деления на 26 . А в конечном итоге при преобразовании обратно в символ просто добавить 97
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы