123456789101112131415161718192021222324252627282930313233 |
- package main
- import (
- "fmt"
- )
- func main() {
- var str []rune
- var s string
- _, err := fmt.Scanln(&s)
- for err == nil {
- str = []rune(s)
- for i, j := len(str)-1, len(str)-1; 1 <= i && 0 <= j; i-- {
- if isLower(str[i]) {
- for j = i - 1; 0 <= j && isLower(str[j]); j-- {
- }
- if j == -1 {
- break
- }
- for k := j + 1; k <= i; k++ {
- str[k-1], str[k] = str[k], str[k-1]
- }
- j--
- }
- }
- fmt.Println(string(str))
- _, err = fmt.Scanln(&s)
- }
- }
- func isLower(b rune) bool {
- return 'a' <= b && b <= 'z'
- }
|