Python 面试算法题目按照输入的数字分割字母

Python 面试算法题目按照输入的数字分割字母


题目介绍:

给出一个字符串,然后输入一个数字长度,根据输入的数字长度对字符串进行分割,如果按照数字长度分割出的信息里面含有重复项则舍弃只保留其中一个即可,输出的时候需要保留原有的顺序。

1
2
3
4
s = 'AAABCADDE'
k = 3

那么我们打印出来的就是 u1 = 'A' u2='BCA' u3='DE'

代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import math

def merge_the_tools(string, k):
if not string:
return
result = ''

for i, ch in enumerate(string):
if i > 0 and i % k == 0:
if result:
print(result)
result = ''

if ch not in result:
result += ch

if result:
print(result)




if __name__ == "__main__":
string, k = input(), int(input())
merge_the_tools(string,k)

代码解释:

这里我们可以通过分析如果当前长度和输入的长度一致,那么我们对输入的数字和长度取余为0的时候表示我们已经取值够了,那么我们只需要在余数为0的时候输出信息即可,然后清空已经存储的信息,继续上面的逻辑

在这里我使用了enumerate 函数可以将遍历出来的信息包含数字索引信息,这样我们就可以通过索引信息来进行取余的操作!

1
2
3
4
5
for i, ch in enumerate(string):
if i > 0 and i % k == 0:
if result:
print(result)
result = ''

那么我们只需在余数不是0的情况下将我们的信息添加到result中,这时候你只需要判断之前是否存在相同的信息即可。

1
2
if ch not in result:
result += ch

那么如果存在极端情况,你只有3个数字,但是你输入了5此时上面的都不适用,那么你只需要判断当前result不是空,直接将输出的信息打印出来即可。

1
2
if result:
print(result)

Python 面试算法题目按照输入的数字分割字母
https://dreamshao.github.io/2025/07/22/python面试算法题目/
作者
Yun Shao
发布于
2025年7月22日
许可协议