{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# <span style=\"color: DarkMagenta\">Задачи для практического занятия по курсу:</span>\n",
    "\n",
    "## <span style=\"color: Purple\">\"Основы алгоритмизации и программирования\"</span>\n",
    "\n",
    "### Лабораторная работа № 6 по теме \"Строки\" (часть 1) &#128221;\n",
    "\n",
    "#### Преподаватель практики: Т.Ф. Долгих, каф. ВМ и МФ, мехмат ЮФУ &#128105;&#8205;&#127979;\n",
    "\n",
    "-----------\n",
    "\n",
    "<span style=\"color: DarkRed\">**Переименовать файл:**</span> File -> Rename... -> поменять NameStud на свою фамилию, записанную латинскими буквами -> нажать Rename.\n",
    "\n",
    "-----------\n",
    "\n",
    "<span style=\"color: DarkGreen\">**Общие указания:**</span>\n",
    "при решении **не использовать** строковые методы, срезы и модули. \n",
    "Можно использовать функции `len()`, `ord()`, `chr()` и операции сравнения, условные операторы, циклы, инструкции `in`/`not in`.\n",
    "Тестовые примеры придумывать свои, а не воровать у преподавателя.\n",
    "\n",
    "-----------\n",
    "\n",
    "Функция `ord(char)` возвращет код символа `char`. Например, `ord('5')` вернёт код `53`.\n",
    "\n",
    "Функция `chr(code)` возвращет символ с кодом `code`. Например, `chr(53)` вернёт символ `'5'`.\n",
    "\n",
    "-----------\n",
    "\n",
    "**Пример 1.** Дана строка. Напечатать номер, символ и код символа каждого второго элемента строки.\n",
    "\n",
    "*Указание.* При печати полагать, что нумерация символов в строке человеческая.\n",
    "\n",
    "```python\n",
    "s = input()\n",
    "\n",
    "for i in range(0, len(s), 2):   # перебор кажодого второго элемента строки по их номерам\n",
    "    print(i+1, s[i], ord(s[i]))\n",
    "```  \n",
    "    \n",
    "    \n",
    "**Пример 2.** Дана строка. Напечатать из этой строки в порядке возрастания все символы-цифры.\n",
    "\n",
    "```python\n",
    "s = input()\n",
    "\n",
    "for numb in range(ord('0'), ord('9')+1):  # перебор символов по их кодам\n",
    "    for char in s:  # перебор строки по символам\n",
    "        if char == chr(numb):\n",
    "            print(char, end=' ')\n",
    "```\n",
    "\n",
    "-----------\n",
    "\n",
    "&#128187; **Задание 3.1.** \n",
    "Дана строка из символов цифр 0, 1, 2, 3, 4 (других символов в строке быть не может).\n",
    "Найдите количество подстрок длины три, удовлетворяющих следующим условиям:\n",
    "\n",
    "1. 1-й символ &mdash; один из символов 1, 2 или 3;\n",
    "2. 2-й символ &mdash; один из символов 1, 3, 4, который не совпадает с первым;\n",
    "3. 3-й символ &mdash; один из символов 1, 2, 4, который не совпадает со вторым."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "&#128187; **Задание 3.2.** \n",
    "Дана строка из заглавных латинских букв (других символов в строке быть не может).\n",
    "Посчитайте количество вхождений в эту строку подстрок вида `?#?#?`, где `?` &mdash; это символ, заданный пользователем, а `#` &mdash; это любой символ.\n",
    "\n",
    "**Пример.**\n",
    "Дана строка `KOALALILAKOLU`.\n",
    "Пользователь вводит символ `L`.\n",
    "Тогда ответ: 1 (это построка `LALIL`)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "&#128187; **Задание 3.3.** \n",
    "Дана строка, состоящая из латинских букв, цифр, знаков препинания, пробелов и любых значков (кириллицы в строке нет!).\n",
    "Сформируйте две новые строки:\n",
    "\n",
    "1. первая строка должна содержать все строчные латинские буквы в алфавитном порядке;\n",
    "2. вторая строка &mdash; прописные латинские буквы в алфавитном порядке, а затем цифры по убыванию.\n",
    "\n",
    "В новых строках не должно быть повторов.\n",
    "\n",
    "**Пример.**\n",
    "Дана строка `344090, Rostov on Don, Milchakova, 8-a.`.\n",
    "Тогда новые строки будут иметь вид:\n",
    "`achiklnostv` и `DMR98430`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "&#128187; **Задание 3.4.** \n",
    "Дана строка, которая может содержать строчные буквы латинского алфавита `a`, `b`,..., `z` (других символов в строке быть не может).\n",
    "Найдите наибольшую длину цепочки из последнего символа строки.\n",
    "В ответе указать длину найденной подстроки."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "abc 123!\n",
      "1 a 97\n",
      "3 c 99\n",
      "5 1 49\n",
      "7 3 51\n"
     ]
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "abc 3694124 - gfh6\n",
      "1 2 3 4 4 6 6 9 "
     ]
    }
   ],
   "source": [
    "# дана строка; напечатать из этой строки в порядке возрастания цифры\n",
    "# abc 3694124 - gfh6\n",
    "# результат: 1 2 3 4 4 6 6 9\n",
    "\n",
    "s = input()\n",
    "\n",
    "for numb in range(ord('0'), ord('9')+1):  # перебор символов по их кодам\n",
    "    for char in s:  # перебор по символам\n",
    "        if char == chr(numb):\n",
    "            print(char, end=' ')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "53"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ord('5')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'5'"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chr(53)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
