Видалити з рядка прогалини і визначити, чи є вона перевертнем,
Вводиться рядок. Видалити з неї всі прогалини. Після цього визначити, чи вона паліндромом (перевертнем), тобто. однаково пишеться як із початку, так і з кінця.
Завдання складається з двох підзавдань: 1) видалення всіх прогалин з рядка та 2) перевірка рядка на "паліндромність".
Для видалення пробілів треба перебрати за символами рядок. Якщо черговий символ пробіл, видалити його. При цьому наступний символ опиниться на місці поточного, а отже, не слід збільшувати значення лічильника. Якщо черговий знак не пробіл, треба перейти до перевірки наступного, тобто. збільшити значення лічильника.
Для перевірки, чи є рядок паліндромом, треба порівняти першу та другу половини рядків. При цьому половинки порівнюються так, що перший символ порівнюється з останнім, другий - з передостаннім, третій - з третім з кінця, і т. д. Тобто, якщо довжина рядка l, а символ першої половини i, то символ другої половини має індекс l -i+1.
мушля лежить на піску .. . черепашка лежить напіску. це не паліндром
o nee no oneeno це паліндром
#include #include #define N 100 main ( ) < char str [N]; int i, f; i = 0; while ( ( str [ i ] = getchar ( ) ) != ' \n ' ) if ( str [ i ] != ' ' ) i += 1 ; str [i] = '\0'; printf ("%s\n", str);
f = 1; for ( i = 0 ; i Python
s = input ( ) s = s. split ( ) s_ = '' for i in s: s_ + = i print ( s_ )
l = len (s_) i = 0 f = 1 while i Кумир
алг паліндром поч літ s ціл i , l , f
введення s l := довжин (s)
нц поки s [l] = " " l := l - 1 s := s [ 1 : l ] кц i := 1 нц поки i s [l - i +1 ] то висновок "Це не паліндром" f := 0 вихід все кц якщо f = 1 то висновок "Паліндром" все кон
input str$ arr$ = explode(str$, " " ) str$ = "" for i=0 to arr$[?] - 1 str$ = str$ + arr $[i] next i print str$
l = length (str $) для i = 1 to l \ 2 if mid (str $, i, 1) <> mid(str$,l-і+1,1) then print "no" end endif next i
Функція explode() розбиває рядок на підрядки за вказаним роздільником. При цьому створюється масив, що складається із підрядків.