Напишите модифицированную функцию strcmp, которая игнорирует регистры и возвращает -1, если s1 <s2, 0, если s1 = s2, иначе возвращает 1. Например, ваш strcmp должен рассматривать «GeeksforGeeks» и «geeksforgeeks» как одну и ту же строку.
Источник: Microsoft Интервью Сет 5
Следующее решение предполагает, что символы представлены с использованием представления ASCII, то есть коды для «a», «b», «c»,… «z» равны 97, 98, 99,… 122 соответственно. И коды для «A», «B», «C»,… «Z» — 65, 66,… 95 соответственно.
Ниже приведены подробные шаги.
1) Выполните итерацию по каждому символу обеих строк и выполните следующие действия для каждого символа.
… А ) Если str1 [i] совпадает с str2 [i], то продолжить.
… Б) Если инвертирование 6-го младшего значащего бита в str1 [i] делает его таким же, как в str2 [i], то продолжайте. Например, если str1 [i] равен 65, то инвертирование 6-го бита сделает его 97. А если str1 [i] равно 97, то инвертирование 6-го бита сделает его 65.
… В ) Если какое-либо из вышеперечисленных условий неверно, нарушите.
2) Сравните последние (или первые несовпадения в случае не одинаковых) символов.
|
С
|
Выход:
ret: 1 ret: -1 ret: -1 ret: -1 ret: 0 ret: 0
Эта статья составлена Нарендрой Кангралкар . Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- Проверьте, совпадают ли две строки, игнорируя их регистры
- Напишите свой собственный atoi ()
- Количество строк, необходимых для записи данной строки
- Напишите программу для обратного массива или строки
- Напишите программу для печати всех перестановок данной строки
- Напишите эффективную программу на C для обращения битов числа
- Напишите эффективный метод, чтобы проверить, является ли число кратным 3
- Напишите функцию, которая возвращает 2 для входа 1 и возвращает 1 для 2
- Количество подстрок в данной двоичной строке, делимое на 2
- Наименьшая ненулевая подстрока, которая имеет любую перестановку, кратную 2 ^ K
- Самая длинная подстрока с K уникальными символами с использованием бинарного поиска
- XOR две двоичные строки неравной длины
- Самая большая подстрока двоичной строки, делимая на 2
- Количество подпоследовательностей в данной двоичной строке, делимое на 2
0.00 (0%) 0 votes