写一个函数,输入一串数字,长度不超过100,要求输出这串数字字符,但每两个数字间空一个空格。如输入1990,应输出“19 90”
时间: 2023-05-02 15:02:50 浏览: 84
下面是 Python 代码实现:
```python
def encode_str(s):
idx = 0
encoded = ''
while idx < len(s):
char = s[idx]
count = 0
while idx < len(s) and s[idx] == char and count < 9:
count += 1
idx += 1
if count > 1:
encoded += str(count) + char
else:
encoded += char
return encoded
def decode_str(s):
idx = 0
decoded = ''
while idx < len(s):
if not s[idx].isdigit():
decoded += s[idx]
idx += 1
else:
count = int(s[idx])
idx += 1
decoded += s[idx] * count
idx += 1
return decoded
# 测试样例
test_str = 'aaaabbbbbccccdddeeff'
encoded_str = encode_str(test_str)
print(encoded_str)
decoded_str = decode_str(encoded_str)
print(decoded_str)
```
输出结果:
```
4a5b4c3d2e2f
aaaabbbbbccccdddeeff
```
可以看到,编码后的字符串中每个字符都被替换成一个数字表示该字符的重复次数,中间用字符本身隔开。解码时,只需要顺序读取字符串即可。