package main import ( "bufio" "fmt" "os" "strings" "time" ) func main() { // foo1() // foo2() // foo3() // foo4() // foo5() // foo6() // foo7() // foo8() // foo9() // foo10() foo12() } func foo1() { var val rune fmt.Scanf("%c", &val) // fmt.Println(string(val)) if val >= '0' && val <= '9' { fmt.Println("YES") } else { fmt.Println("NO") } } func foo2() { var val rune fmt.Scanf("%c", &val) for letter := 'a'; letter <= val; letter++ { fmt.Print(string(letter), " ") } } func foo3() { var val rune fmt.Scanf("%c", &val) for letter := val; letter <= 'z'; letter++ { fmt.Print(string(letter), " ") } } func foo4() { var val rune fmt.Scanf("%c", &val) if val >= 'A' && val <= 'Z' { fmt.Print(string(val + 32)) } else if val >= 'a' && val <= 'z' { fmt.Print(string(val - 32)) } } func foo5() { var name string var price float64 var amount int fmt.Scan(&name, &price, &amount) fmt.Printf("Стоимость %s: %g * %d = %g руб.", name, price, amount, price*float64(amount)) } func foo6() { scanner := bufio.NewScanner(os.Stdin) scanner.Scan() str := scanner.Text() fmt.Println(strings.Count(str, " ") + 1) } // ----------------------------------------------------- func foo7() { var str string fmt.Scan(&str) s := []rune(str) for i := len(s) - 1; i >= 0; i-- { fmt.Print(string(s[i])) } } // Функция с использованием defer func reverseWithDefer(s string) { for _, val := range s { defer func(v rune) { _ = string(v) // вместо вывода }(val) } } // Функция проход с конца func reverseWithAccumulation(s string) { for i := len(s) - 1; i >= 0; i-- { _ = string(s[i]) // вместо вывода } } func testSpeed(s string) { start := time.Now() reverseWithDefer(s) durationDefer := time.Since(start) fmt.Println(durationDefer) } // ----------------------------------------------------- func foo8() { /* var position int scanner := bufio.NewScanner(os.Stdin) scanner.Scan() str := scanner.Text() fmt.Scan(&position) strRune := []rune(str) for i := 0; i < len(strRune); i++ { if i != position-1 { fmt.Print(string(strRune[i])) } } */ var str string var position int fmt.Scan(&str, &position) strRune := []rune(str) for i := 0; i < len(strRune); i++ { if i != position-1 { fmt.Print(string(strRune[i])) } } } func foo9() { /* scanner := bufio.NewScanner(os.Stdin) scanner.Scan() str := scanner.Text() strRune := []rune(str) res := "-1" for i := 0; i < len(strRune); i++ { if strRune[i] == 'x' { res = "x" break } if strRune[i] == 'w' { res = "w" break } } fmt.Println(res) */ var str string fmt.Scan(&str) for _, element := range str { if string(element) == "x" || string(element) == "w" { fmt.Println(string(element)) return } } fmt.Print(-1) } // Функция палиндром func foo10() { var s, rs string fmt.Scan(&s) for i := 0; i < len(s); i++ { rs = string(s[i]) + rs } if rs == s { fmt.Println("YES") } else { fmt.Println("NO") } } // Еще один вариант палиндрома func foo11() { scanner := bufio.NewScanner(os.Stdin) scanner.Scan() s := scanner.Text() for i := 0; i < len(s)/2; i++ { if s[i] != s[len(s)-1-i] { break } } } // Поиск повторяющейся буквы func foo12() { var s string fmt.Scan(&s) for i := 0; i < len(s); i++ { simbol := s[i] for j := i + 1; j < len(s); j++ { if simbol == s[j] { fmt.Println(string(simbol)) break } } } }