String68. Дана строка, содержащая цифры и строчные латинские буквы. Если буквы в строке упорядочены по алфавиту, то вывести $$0$$; в противном случае вывести номер первого символа строки, нарушающего алфавитный порядок.
Решение от Newton:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
program String68; const LowerCase = ['a'..'z']; var Line : string; Counter, Result : byte; Spare : char; begin writeln('Enter a string of letters and numbers: '); readln(Line); Counter := 1; Spare := chr(ord('a') - 1); Result := 0; while (Counter <= Length(Line)) and (Result = 0) do begin if (Line[Counter] in LowerCase) then if (Line[Counter] > Spare) then Spare := Line[Counter] else Result := Counter; inc(Counter); end; writeln('The element number breaking the sequence is ', Result); end. |
Другие задачи из раздела String можно посмотреть здесь.
Немного формализма:
— строка, содержащая цифры и строчные латинские буквы // без прописных
— вывести номер первого символа строки // а не сам символ
Сам сделал так:
Да, согласен. У меня не то решение:
Было:
Заменил на ваше.