题解 | #字符串加密#
字符串加密
https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
package main
import (
"fmt"
"strings"
)
func main() {
// 输入的字符只包含小写
var key,str string
fmt.Scan(&key,&str)
// 对key中的字母进行去重
mymap:=make(map[rune]bool)
tem:=[]rune{}
for _,v:=range key{
if ok,_:=mymap[v];!ok{
mymap[v]=true
tem = append(tem, v)
}
}
// 创建两个对应的字母表
biao1:=[]rune{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}
// 表二的创建有了问题
var biao2 []rune
for _,v:=range tem{
biao2=append(biao2, v)
}
for _,v:=range biao1{
if !(strings.ContainsRune(string(biao2), v)){
biao2=append(biao2, v)
}
}
// 创建map方便扫描
mymap1:=make(map[rune]rune)
for i,v:=range biao1{
mymap1[v]=biao2[i]
}
mymap1[' ']=' '
// 具体的加密过程
var res []rune
for _,v:=range str{
res = append(res,mymap1[v] )
}
fmt.Println(string(res))
}
查看3道真题和解析
