题解 | #简单密码#
简单密码
https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
package main
import (
"bufio"
"fmt"
"os"
"strings"
"unicode"
)
func main() {
letters := map[rune]rune{
'a': '2',
'b': '2',
'c': '2',
'd': '3',
'e': '3',
'f': '3',
'g': '4',
'h': '4',
'i': '4',
'j': '5',
'k': '5',
'l': '5',
'm': '6',
'n': '6',
'o': '6',
'p': '7',
'q': '7',
'r': '7',
's': '7',
't': '8',
'u': '8',
'v': '8',
'w': '9',
'x': '9',
'y': '9',
'z': '9',
}
inputs := bufio.NewScanner(os.Stdin)
inputs.Scan()
password := inputs.Text()
builder := strings.Builder{}
for _, letter := range password {
var transformedLetter rune
if letter >= 'A' && letter <= 'Z' {
if letter != 'Z' {
transformedLetter = unicode.ToLower(letter) + 1
} else {
transformedLetter = 'a'
}
} else if letter >= 'a' && letter <= 'z' {
transformedLetter = letters[letter]
} else {
transformedLetter = letter
}
builder.WriteRune(transformedLetter)
}
fmt.Println(builder.String())
}
