8316. Сортировка букв

 

Задано слово, состоящее из прописных латинских букв. Отсортируйте его буквы по возрастанию и по убыванию лексикографического порядка.

 

Вход. Одна строка, содержащая не более 100 прописных латинских букв 'a' - 'z'.

 

Выход. В первой строке выведите отсортированную входную строку по неубыванию ASCII кодов букв. Во второй строке выведите отсортированную входную строку по невозрастанию ASCII кодов букв.

 

Пример входа

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

qwerty

eqrtwy

ywtrqe

 

 

РЕШЕНИЕ

строки

 

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

Отсортируем строки при помощи функции sort из STL. Воспользуемся компаратором less<int>() для сортировки по возрастанию и компаратором greater<int>() для сортировки по убыванию.

 

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

Объявим рабочий символьный массив.

 

#define MAX 101

char s[MAX];

 

Читаем строку.

 

gets(s);

 

Сортируем буквы по возрастанию. Выводим полученную строку.

 

sort(s,s+strlen(s),less<int>());

puts(s);

 

Сортируем буквы по убыванию. Выводим полученную строку.

 

sort(s,s+strlen(s),greater<int>());

puts(s);

 

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

 

#include <iostream>

#include <string>

#include <algorithm>

using namespace std;

 

string s;

 

int main(void)

{

  cin >> s;

  sort(s.begin(),s.end(),less<int>());

  cout << s << "\n";

  sort(s.begin(),s.end(),greater<int>());

  cout << s << "\n";

  return 0;

}

 

Реализация алгоритма – C, swap sort

 

#include <stdio.h>

#include <string.h>

 

char s[101], temp;

int i, j, n;

 

int main(void)

{

  gets(s);

  n = strlen(s);

 

  for (i = 0; i < n; i++)

  for (j = i + 1; j < n; j++)

    if (s[i] > s[j])

    {

      temp = s[i]; s[i] = s[j]; s[j] = temp;

    }

  puts(s);

 

  for (i = 0; i < n; i++)

  for (j = i + 1; j < n; j++)

    if (s[i] < s[j])

    {

      temp = s[i]; s[i] = s[j]; s[j] = temp;

    }

  puts(s);

  return 0;

}

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    String s[] = con.nextLine().split("");

    // s = {"q", "w", "e", "r", "t", "y"}

   

    Arrays.sort(s);

    System.out.println(String.join("", s));

 

    Arrays.sort(s,Collections.reverseOrder());

    System.out.println(String.join("", s));

    con.close();

  }

}

 

Python реализация

 

s = input()

print(''.join(sorted(s)))

print(''.join(sorted(s, reverse = True)))

 

Python реализация сортировка

 

l = list(input())

 

l.sort()

print(''.join(l))

 

l.sort(reverse = True)

print(''.join(l))