Строки: Напишите программу 2

Сообщения
1,547
Реакции
271
Веб-сайт
tehadm.ru
На вход подается строка. Нужно определить, является ли она палиндромом. Если строка является палиндромом - вывести Палиндром иначе - вывести Нет. Все входные строчки в нижнем регистре.
Палиндром — буквосочетание, слово или текст, одинаково читающееся в обоих направлениях (например, "топот", "око", "заказ").

Sample Input:
топот

Sample Output:
Палиндром
 
C-like:
package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    scanner.Scan()
    text := scanner.Text()

    if text == reverse(text) {
        fmt.Println("Палиндром")
    } else {
        fmt.Println("Нет")
    }
}

func reverse(s string) string {
    runes := []rune(s)
    for i, j := 0, len(runes)-1; i < len(runes)/2; i, j = i+1, j-1 {
        runes[i], runes[j] = runes[j], runes[i]
    }
    return string(runes)
}

  • Функция main считывает строку ввода с помощью bufio.Scanner.
  • Функция main вызывает функцию reverse, чтобы получить обратную строку.
  • Функция main сравнивает исходную строку с обратной строкой. Если они равны, значит, строка является палиндромом, и программа выводит "Палиндром". В противном случае программа выводит "Нет".
  • Функция reverse преобразует строку в срез рун (кодов символов Unicode) с помощью []rune(s).
  • Функция reverse использует цикл for для перестановки рун в обратном порядке.
  • Функция reverse возвращает обратную строку, преобразуя срез рун обратно в строку с помощью string(runes).
 
C-like:
package main

import (
    "fmt"
)

func main() {
    var st string
    fmt.Scan(&st)
    rs := []rune(st)

    reversed := make([]rune, len(rs))
    for i, j := 0, len(rs)-1; i < len(rs); i, j = i+1, j-1 {
        reversed[i] = rs[j]
    }

    if string(rs) == string(reversed) {
        fmt.Println("Палиндром")
    } else {
        fmt.Println("Нет")
    }
}
 
C-like:
package main

import ("fmt"
       )
func main() {
    var text,reverse string
    fmt.Scan(&text)
    
    for _, v := range text {
        reverse = string(v) + reverse
    }
    if text == reverse {
        fmt.Println("Палиндром")
    }else{
        fmt.Println("Нет")
    }
}
 
Назад
Сверху Снизу