@Grana

Cравнить два char массива лексикографически?

Есть задание: Напишите код, который сравнивает два char массива лексикографически (буква за буквой). Я почитал про строковый лексикографический массив и не до конца понимаю как они сравниваются, помогите пожалуйста объяснить
вот пример s1: 123, s2: 111 =>
результат The first array is earlier.
The second array is earlier.
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
Seasle
@Seasle Куратор тега JavaScript
const lexicographicCompare = (a, b) => {
  const preparedA = a.trim();
  const preparedB = b.trim();
  const count = Math.max(preparedA.length, preparedB.length);
  let index = 0;
  
  for (let index = 0; index < count; index++) {
    const diff = (preparedA.charCodeAt(index) || 0) - (preparedB.charCodeAt(index) || 0);
    
    if (diff !== 0) {
      return Math.sign(diff);
    }
  }
  
  return 0;
};


const result = lexicographicCompare('111', '123');
if (result > 0) {
  console.log('Second earlier');
} else if (result < 0) {
  console.log('First earlier');
} else {
  console.log('Equals');
}

Также посмотрите сюда.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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