题解 | #简单密码#
简单密码
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()) }