首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从给定编码的ascii字符串中解码所有可能性。

从给定编码的ascii字符串中解码所有可能性。
EN

Stack Overflow用户
提问于 2018-04-10 04:19:23
回答 1查看 5.5K关注 0票数 0

字符串通过执行以下操作序列进行编码:

  1. 用其ASCII值表示替换每个字符。
  2. 扭转绳子。

例如,下表显示了从字符串"HelloWorld"到ASCII字符串"7210110810811187111114108100"的转换。

字符

代码语言:javascript
运行
复制
H  e   l   l   o    W  o   r   l   d

ASCII值

代码语言:javascript
运行
复制
72 101 108 108 111  87 111 114 108 100

然后反转ASCII字符串以获得编码的字符串"0018014111117811180180110127“。

编码字符串中的字符在10-126范围内,其中包括特殊字符.

我需要编写一个函数,它必须是解码编码的字符串,返回解码方式的列表。

我找不到解决这个问题的办法。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2018-04-11 09:20:28

代码语言:javascript
运行
复制
solutions = []
currentSolution = ''
unprocessed = ''


def decode(s):
    flipped = s[::-1]
    global solutions
    global unprocessed
    global currentSolution
    currentSolution = ''
    unprocessed = flipped
    _decode()
    return solutions


def is_valid(split):
    if split.startswith('0'):
        return False
    value = int(split)
    if value < 10 or value > 126:
        return False
    return True


def _decode():
    global unprocessed
    global currentSolution
    global solutions
    if len(unprocessed) == 0:
        solutions.append(currentSolution)
    else:
        possible_splits = list()
        possible_splits.append(unprocessed[0:2])
        possible_splits.append(unprocessed[0:3])

        for split in possible_splits:
            if is_valid(split):
                decoded_character = chr(int(split))
                currentSolution += decoded_character
                unprocessed = unprocessed[len(split):]
                _decode()
                currentSolution = currentSolution[0: len(currentSolution) - 1]
                unprocessed = split + unprocessed


def main():
    final_solutions = decode('0018014111117811180180110127')
    print(final_solutions)


if __name__ == '__main__':
    main()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49745241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档