首页 > 试题广场 >

简单密码

[编程题]简单密码
  • 热度指数:303799 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
现在有一种密码变换算法。
九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.
而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。
数字和其它的符号都不做变换。
数据范围: 输入的字符串长度满足

输入描述:

输入一组密码,长度不超过100个字符。



输出描述:

输出密码变换后的字符串

示例1

输入

YUANzhi1987

输出

zvbo9441987
strr = input()
def Zi_to_Num(strr):
    if strr == '1':
        return '1'
    if strr == '0':
        return '0'
    if strr.isupper():
        if ord(strr) < 90:
            return chr(ord(strr.lower())+1)
        if ord(strr) == 90:
            return 'a'
    if strr.islower():
        if strr in 'abc':
            return '2'
        if strr in 'def':
            return '3'
        if strr in 'ghi':
            return '4'
        if strr in 'jkl':
            return '5'
        if strr in 'mno':
            return '6'
        if strr in 'pqrs':
            return '7'
        if strr in 'tuv':
            return '8'
        if strr in 'wxyz':
            return '9'
    if strr.isdigit():
        return strr
out = ''
for i in strr:
    out += Zi_to_Num(i)
print(out)
发表于 2024-11-24 23:40:23 回复(1)
    source=input()
    button=['1','abc','def','ghi','jkl','mno','pqrs','tuv','wxyz','0']
    out=['1','2','3','4','5','6','7','8','9','0']
    res=[]
    for i in source:
        if i.isdigit():
            res.append(i)
        elif i.isupper():
            if i=='Z':
                res.append('a')
            else:
                res.append(chr(ord(i.lower())+1))
        elif i.islower():
            for j in button:
                if i in j:
                    res.append(out[button.index(j)])
                    break
        else:
            res.append(i)
    print(''.join(res))
发表于 2024-11-21 17:38:44 回复(0)
import sys

alpha_dict = {
    "abc": "2",
    "def": "3",
    "ghi": "4",
    "jkl": "5",
    "mno": "6",
    "pqrs": "7",
    "tuv": "8",
    "wxyz": "9"
}

for line in sys.stdin:
    m = ''
    for s in line:
        if s.isalpha():
            if s.islower():
                for a in alpha_dict:
                    if s in a:
                        s = alpha_dict[a]
                        break
            else:
                s = "a" if s == "Z" else chr(ord(s.lower()) + 1)
        m += s
    print(m)

发表于 2024-11-12 16:58:07 回复(0)
password = input() transformed_password = "" for char in password: if char.islower(): if char in 'abc': transformed_password += '2' elif char in 'def': transformed_password += '3' elif char in 'ghi': transformed_password += '4' elif char in 'jkl': transformed_password += '5' elif char in'mno': transformed_password += '6' elif char in 'pqrs': transformed_password += '7' elif char in 'tuv': transformed_password += '8' elif char in 'wxyz': transformed_password += '9' elif char.isupper(): lower_char = char.lower() if lower_char == 'z': transformed_password += 'a' else: transformed_password += chr(ord(lower_char) + 1) else: transformed_password += char print(transformed_password)
发表于 2024-10-31 14:37:30 回复(0)
in_str = input()

trs = {
    "1":"1",
    "abc":"2",
    "def":3,
    "ghi":4,
    "jkl":5,
    "mno":6,
    "pqrs":7,
    "tuv":8,
    "wxyz":9,
    "0":0
}
uper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
o = ""
ns = list(in_str)
for i,j in trs.items():
    for k in range(len(ns)):
        if ns[k] in i:
            ns[k] = str(j)

for i in range(len(in_str)):
    if in_str[i].isupper():
        up_index = uper.index(in_str[i])
        if up_index != 25:
            ns[i] = uper[up_index+1].lower()
        else:
            ns[i] = 'a'
print("".join(map(str,ns)))

发表于 2024-09-30 07:19:32 回复(0)
import sys


for line in sys.stdin:
    password = ""
    for i in line:
        if i == '1':
            print(i, end="")
        else:
            if i.isalpha():
                if i.islower():
                    if i not in ['s', 'v', 'y', 'z']:
                        print((ord(i) - ord('a')) // 3 + 2, end="")
                    else:
                        print((ord(i) - ord('a')) // 3 + 1, end="")
                else:
                    c = chr(ord(i)+1).lower()
                    if c.isalpha():
                        print(c, end="")
                    else:
                        print("a", end="")
            else:
                print(i, end="")

发表于 2024-09-24 07:51:46 回复(0)
A="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
B="22233344455566677778889999bcdefghijklmnopqrstuvwxyza"
a=input()
b=''
for i in a:
    if i in A:
        b +=B[A.index(i)]
    else:
        b +=i
print(b)  
发表于 2024-09-07 15:39:55 回复(2)
def Password_conversion(s):
    new_word = ''
    for i in s:
        if i in "abc":
            new_word += '2'
        elif i in "def":
            new_word += '3'
        elif i in "ghi":
            new_word += '4'
        elif i in "jkl":
            new_word += '5'
        elif i in "mno":
            new_word += '6'
        elif i in "pqrs":
            new_word += '7'
        elif i in "tuv":
            new_word += '8'
        elif i in "wxyz":
            new_word += '9'

        elif i.isupper():
            if i == "Z":
                new_word += 'a'
            else:
                new_word += chr(ord(i.lower())+1)
        else:
            new_word += i
    return new_word

print(Password_conversion(input()))

发表于 2024-08-14 18:18:04 回复(0)
while True:
    try:
        s = input()
        d = dict(zip('1abcdefghijklmnopqrstuvwxyz0', '1222333444555666777788899990'))
        res = ''
        for ch in s:
            if ch.islower():
                res += d[ch]
            elif ch.isupper():
                if ch != 'Z':
                    res += chr(ord(ch)+1).lower()
                else:
                    res += 'a'
            elif ch.isdigit():
                res += ch
        print(res)
    except:
        break

发表于 2024-08-11 12:38:26 回复(0)
# 第21题 密码转换
a_input = list(input())
str_2 = 'abc'
str_3 = 'def'
str_4 = 'ghi'
str_5 = 'jkl'
str_6 = 'mno'
str_7 = 'pqrs'
str_8 = 'tuv'
str_9 = 'wxyz'
n = -1
for i in a_input:
    n += 1
    if i in str_2 :
        a_input[n] = '2'
    if i in str_3 :
        a_input[n] = '3'
    if i in str_4:
        a_input[n] = '4'
    if i in str_5 :
        a_input[n] = '5'
    if i in str_6 :
        a_input[n] = '6'
    if i in str_7 :
        a_input[n] = '7'
    if i in str_8 :
        a_input[n] = '8'
    if i in str_9 :
        a_input[n] = '9'
    if i.isupper() and i != 'Z':
        sc_value = ord(i) + 1
        b = chr(sc_value)
        c = b.lower()
        a_input[n] = c
    if i == 'Z':
        a_input[n] = 'a'
a_str = ''
for item in a_input:
    a_str += item
print(a_str)
发表于 2024-06-07 22:25:33 回复(0)
a = input()
m =str()
j = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
k = '2223334445556667777888999'
for i in a:
    if 'A' <= i <= 'Y':
        # i=chr(ord(i)+33)
        i = j[j.index(i)+1].lower()
    elif i == 'Z':
        i='a'
    elif i in ('a','b','c'):
        i='2'
    elif i in ('d','e','f'):
        i='3'
    elif i in ('g','h','i'):
        i='4'        
    elif i in ('j','k','l'):
        i='5'
    elif i in ('m','n','o'):
        i='6'
    elif i in ('p','q','r','s'):
        i='7'
    elif i in ('t','u','v'):
        i='8'
    elif i in ('w','x','y','z'):
        i='9'
    else:
        i=i
    m=m+i
print(m)

发表于 2024-06-02 18:21:13 回复(0)
"""
1. 定义键值对
2. 大写字母对应小写字母
3. 
"""
key = [(1,'1'),
(2,'abc'),
(3,'def'),
(4,'ghi'),
(5,'jkl'),
(6,'mno'),
(7,'pqrs'),
(8,'tuv'),
(9,'wxyz'),
(0,'0')
]

s = input()

res = ''

for i in s:
    if i.isalpha():
        # 字母
        if i == i.lower():
            # 小写
            for k,v in key:
                if i in v:
                    res += str(k)
        else:
            # 大写
            x = ''
            z_order = ord('z')
            if ord(i.lower()) + 1 > z_order:
                x = 'a'
            else:
                x = chr(ord(i.lower())+1)
            res += x
    else:
        # 其他字符
        res += i

            

print(res)

发表于 2024-05-09 18:28:09 回复(0)
nine = {
    'abc':'2', 'def':'3', 'ghi':'4', 'jkl':'5',
    'mno':'6', 'pqrs':'7', 'tuv':'8', 'wxyz':'9'
    }
low = 'abcdefghijklmnopqrstuvwxyza'

n = input()
fin = ''
for i in range(len(n)):
    if n[i].isdigit():
        fin += n[i]
    elif n[i].islower():
        for k in nine.keys():
            if n[i] in k:
                fin += nine[k]
                break
    elif n[i].isupper():
        fin += low[low.index(n[i].lower()) + 1]
print(fin)

发表于 2024-04-15 16:09:39 回复(0)
import re

s = input()
# s = 'YUANzhi1987'


def func(matched):
    if matched.group() in "abc":
        return "2"
    if matched.group() in "def":
        return "3"
    if matched.group() in "ghi":
        return "4"
    if matched.group() in "jkl":
        return "5"
    if matched.group() in "mno":
        return "6"
    if matched.group() in "pqrs":
        return "7"
    if matched.group() in "tuv":
        return "8"
    if matched.group() in "wxyz":
        return "9"
    if matched.group().isupper():
        if matched.group() == "Z":
            return "a"
        return chr(ord(matched.group().lower()) + 1)


result = re.sub("[a-zA-Z]", func, s)
print(result)

编辑于 2024-04-15 10:13:56 回复(0)
dict_lower_trans = {
    'abc': '2',
    'def': '3',
    'ghi': '4',
    'jkl': '5',
    'mno': '6',
    'pqrs': '7',
    'tuv': '8',
    'wxyz': '9',
}

upper_string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

trans_password = ''
for s in input():
    if s.islower():
        for group in dict_lower_trans.keys():
            if s in group:
                trans_password += dict_lower_trans[group]
                break
    elif s.isupper():
        if s == 'Z':
            trans_password += 'a'
        else:
            idx = upper_string.index(s)
            trans_password += upper_string[idx + 1].lower()
    else:
        trans_password += s

print(trans_password)

编辑于 2024-04-11 20:34:37 回复(0)
a = input()
m =str()
for i in a:
    if 'A' <= i <= 'Y':
        i=chr(ord(i)+33)
    elif i == 'Z':
        i='a'
    elif i in ('a','b','c'):
        i='2'
    elif i in ('d','e','f'):
        i='3'
    elif i in ('g','h','i'):
        i='4'        
    elif i in ('j','k','l'):
        i='5'
    elif i in ('m','n','o'):
        i='6'
    elif i in ('p','q','r','s'):
        i='7'
    elif i in ('t','u','v'):
        i='8'
    elif i in ('w','x','y','z'):
        i='9'
    else:
        i=i
    m=m+i
print(m)

发表于 2024-03-09 17:26:40 回复(0)
a=input()
for i in a:
    if 48<=ord(i)<=57:  # 数字
        print(i,end='')
    if 97<=ord(i)<=114: # a-r
        print(chr(int((ord(i)-97)/3)+50),end='')
    if i=='s':          # s
        print('7',end='')
    if 116<=ord(i)<=121: # a-r
        print(chr(int((ord(i)-98)/3)+50),end='')
    if i=='z':          # z
        print('9',end='')
    if 65<=ord(i)<=89: # A-Y
        print(chr((ord(i)+33)),end='')
    if i=='Z': # Z
        print('a',end='')

编辑于 2024-02-21 16:46:35 回复(0)
# 懒得记也记不住ASCII换码函数了,直接字典映射
hax = {
    '0':'0','1':'1','2':'2','3':'3','4':'4','5':'5','6':'6',
    '7':'7','8':'8','9':'9','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'
    }

a = input()
res=[]
for i in a :
    res.append(hax[i])

print("".join(res))

发表于 2023-12-19 17:58:22 回复(1)