编码方法可以根据具体需求有多种实现方式。以下是一个示例解决方法,使用Python 3的内置函数来实现编码方法:
def encode(s):
encoded = ""
count = 1
for i in range(1, len(s)):
if s[i] == s[i-1]:
count += 1
else:
encoded += str(count) + s[i-1]
count = 1
encoded += str(count) + s[-1]
return encoded
def decode(encoded):
decoded = ""
i = 0
while i < len(encoded):
count = int(encoded[i])
decoded += count * encoded[i+1]
i += 2
return decoded
# 示例用法
s = "AAAABBBCCDAA"
encoded = encode(s)
decoded = decode(encoded)
print("Encoded:", encoded) # 输出:4A3B2C1D2A
print("Decoded:", decoded) # 输出:AAAABBBCCDAA
上述代码中,encode
函数将输入字符串进行编码,将连续出现的相同字符替换为字符出现的次数加上字符本身。decode
函数则对编码后的字符串进行解码,将数字和字符按照原始编码的方式进行还原。
在示例中,字符串"AAAABBBCCDAA"
经过编码后变为"4A3B2C1D2A"
,再经过解码后又恢复为原始字符串"AAAABBBCCDAA"
。
下一篇:编码非小写ASCII字符