题解 | #简单密码#

简单密码

https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac

package main

import (
	"fmt"
	"strings"
)

func main() {
	var password string
	fmt.Scan(&password)

	result := transformPassword(password)
	fmt.Println(result)
}

func transformPassword(password string) string {
	mapping := map[byte]byte{
		'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',
		'A': 'b', 'B': 'c', 'C': 'd', 'D': 'e', 'E': 'f', 'F': 'g', 'G': 'h', 'H': 'i', 'I': 'j', 'J': 'k', 'K': 'l', 'L': 'm', 'M': 'n', 'N': 'o', 'O': 'p', 'P': 'q', 'Q': 'r', 'R': 's', 'S': 't', 'T': 'u', 'U': 'v', 'V': 'w', 'W': 'x', 'X': 'y', 'Y': 'z', 'Z': 'a',
	}
	var result strings.Builder
	for i := 0; i < len(password); i++ {
		char := password[i]
		if val, ok := mapping[char]; ok {
			result.WriteByte(val)
		} else {
			result.WriteByte(char)
		}

	}
	return result.String()
}

以下是使用Golang实现密码变换算法的示例代码:

package main

import (
	"fmt"
	"strings"
)

func transformPassword(password string) string {
	keyboardMapping := 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',
		'A': 'b', 'B': 'c', 'C': 'd', 'D': 'e', 'E': 'f', 'F': 'g', 'G': 'h', 'H': 'i',
		'I': 'j', 'J': 'k', 'K': 'l', 'L': 'm', 'M': 'n', 'N': 'o', 'O': 'p', 'P': 'q',
		'Q': 'r', 'R': 's', 'S': 't', 'T': 'u', 'U': 'v', 'V': 'w', 'W': 'x', 'X': 'y',
		'Y': 'z', 'Z': 'a',
	}

	var transformedPassword strings.Builder
	for _, char := range password {
		if replacement, ok := keyboardMapping[char]; ok {
			transformedPassword.WriteRune(replacement)
		} else {
			transformedPassword.WriteRune(char)
		}
	}

	return transformedPassword.String()
}

func main() {
	var password string
	fmt.Scanln(&password)

	transformedPassword := transformPassword(password)
	fmt.Println(transformedPassword)
}

请注意,此代码假设输入的密码只包含小写字母、大写字母、数字和其他符号。如果输入包含其他字符,它们将被保留在输出中而不进行任何变换。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务