4281. Невнимательность

 

Степан успешно прошёл собеседование и уже четыре месяца работает в одной из самых престижных IT-компаний. Настало время сдавать проект менеджеру, и Степан, как настоящий студент, делает всё в последнюю ночь перед дедлайном. Он печатает текст необычайно быстро, но невнимательно. В этот раз, набирая последнюю часть текста, он случайно нажал клавишу Caps Lock и не заметил этого. В результате заглавные буквы стали строчными, а строчные – заглавными. Остальные символы были введены правильно.

Степан так устал, что у него совсем нет сил исправить ошибки, и он решил немного поспать.

Помогите Степану: напишите программу, которая исправит невнимательно набранный текст, пока он отдыхает.

 

Вход. Одна строка, содержащая текст, невнимательно набранный Степаном. Длина строки не превышает 500 символов.

 

Выход. Выведите исправленный текст.

 

Пример входа

Пример выхода

sCHOOL

School

 

 

РЕШЕНИЕ

обработка текста

 

Анализ алгоритма

Читаем входной текст посимвольно.

·        Если символ ch является буквой нижнего регистра, преобразуем его в верхний по формуле ch + ‘A’ – ‘a’.

·        Если символ ch является буквой верхнего регистра, то преобразуем его в нижний по формуле ch + ‘a’ – ‘A’.

 

Реализация алгоритма

Обрабатываем входной текст символ за символом: строчные буквы преобразуем в заглавные, а заглавные в строчные.

 

while(scanf("%c",&ch) == 1)

{

  if(ch >= 'a' && ch <= 'z')

     ch = ch  + 'A' - 'a';

  else if(ch >= 'A' && ch <= 'Z')

     ch = ch + 'a' - 'A';

  printf ("%c",ch);

}

 

Java реализация – char array

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    char s[] = con.nextLine().toCharArray();

    for(int i = 0; i < s.length; i++)

    {

      if (Character.isUpperCase(s[i]))

        System.out.print(Character.toLowerCase(s[i]));

      else if(Character.isLowerCase(s[i]))

        System.out.print(Character.toUpperCase(s[i]));

      else

        System.out.print(s[i]);     

    }

    con.close();

  }

}

 

Java реализация – String

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    String in = con.nextLine();

    String out = "";

   

    for(int i = 0; i < in.length(); i++)

    {

      if (Character.isUpperCase(in.charAt(i)))

        out = out + Character.toLowerCase(in.charAt(i));

      else if(Character.isLowerCase(in.charAt(i)))

        out = out + Character.toUpperCase(in.charAt(i));

      else

        out = out + in.charAt(i);     

    }

    System.out.println(out);

    con.close();

  }

}

 

Python реализация

Читаем входную строку. Преобразуем ее в список символов.

 

lst = list(input())

 

Cтрочные буквы в списке lst делаем заглавными, а заглавныестрочными.

 

for i in range(len(lst)):

  if lst[i].isupper():

    lst[i] = lst[i].lower()

  else:

    lst[i] = lst[i].upper()

 

Преобразуем список символов lst в строку s.

 

s = "".join(lst)

 

Выводим ответ.

 

print(s)

 

Python реализация – list comprehension

Читаем входную строку.

 

s = input()

 

Строим список, в котором строчные буквы становятся заглавными, а заглавныестрочными.

 

res = "".join([ch.lower() if ch.isupper() else ch.upper() for ch in s])

 

Выводим ответ.

 

print(res)

 

Python реализация – swapcase

Читаем входную строку.

 

s = input()

 

Меняем регистр всех букв в строке: строчные буквы становятся заглавными, а заглавныестрочными.

 

res = s.swapcase()

 

Выводим ответ.

 

print(res)