在Python中将字符串从字母解密为整数映射
假设我们有一个由数字('0'-'9')和'#'组成的字符串s。我们必须将s映射到一个英文小写字符,如下所示:
字符('a'至'i')分别由('1'至'9')表示。
字符('j'至'z')分别由('10#'至'26#')表示。
我们必须找到映射后形成的字符串。我们假设唯一的映射将始终存在。因此,如果输入像“ 10#11#12”,那么它将是“ jkab”。因为10#是j,11#是k,1是a并且2是b。
为了解决这个问题,我们将遵循以下步骤-
创建一个映射以容纳所有字符及其对应的ASCII值
ans:= 0,而map ['']:='',ad i:=字符串长度– 1
当我> 0
temp:=“”
对于j:= i – 2到i,temp:= temp + s [j]
ans:= map [temp] + ans
使我减少3
如果s [i]是#,则
否则ans:= map [s [i]] + ans,并将i减1
返回ans
范例(Python)
让我们看下面的实现以更好地理解-
class Solution(object):def freqAlphabets(self, s):
m = {}
x = 'a'
for i in range(1, 27):
m[str(i)] = x
x = chr(ord(x) + 1)
ans = ""
m['']=''
i = len(s) - 1
while i >= 0:
if s[i] == "#":
temp = ""
for j in range(i - 2, i):
temp += s[j]
ans = m[str(temp)] + ans
i -= 3
else:
ans = m[s[i]] + ans
i -= 1
return ans
ob1 = Solution()print(ob1.freqAlphabets("17#123#5621#"))
输入项
"17#123#5621#"
输出结果
qawefu
以上是 在Python中将字符串从字母解密为整数映射 的全部内容, 来源链接: utcz.com/z/357113.html