在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

    回到顶部