如题,需求是有一些含有重复字符的字符串,想要得到干净版本
Waaaaaaaaao! -> Wao!
还有一些两个字符重复的,比如
hhahahahahaha ! -> hha!
不考虑三字符重复情况。 想了一下,搞一个缓存状态,缓存临近 2 字符似乎实现起来也不难,但总觉得实现起来不太干净的样子。v 友们集思广益一下,有没有什么好的写法。
1
hsfzxjy 2021-03-13 00:34:34 +08:00
正则一把梭
双字符 re.sub(r'(.{,2}?)(\1)+', r'\1', 'abcabcddddd') 任意多字符 re.sub(r'(.+?)(\1)+', r'\1', 'abcabcddddd') |
2
ClericPy 2021-03-13 00:35:19 +08:00
加强版的零宽断言面试题...? 太晚了先睡觉了
|
3
klesh 2021-03-13 00:52:47 +08:00 via Android
hha 不算重复?
|
4
also24 2021-03-13 01:06:08 +08:00 1
我觉得首先需要明确一下题意,我这里构造一个样例:
Waaahahah! 对于这个样例,要怎么处理呢? 从左至右,一次性处理的话,会先处理 3 个 a,然后处理 2 个 haha: W[aaa][haha]h! -> Wahah! 从右至左,一次性处理的话,会先处理 3 个 ah,然后处理 2 个 a: W[aa][ahahah]! -> Waah! 从左至右,每次只处理一种情况,然后从头开始处理的话,会先处理 3 个 a,然后处理 3 个 ah: W[aaa]hahah! -> Wahahah! -> W[ahahah]! -> Wah! |
5
ericgui 2021-03-13 02:07:53 +08:00
hha -> ha ?
这个咋办? 重复两次不算重复?三次以上才算? |
6
ipwx 2021-03-13 02:45:43 +08:00
楼主得先明确需求。。。
|
7
zxCoder 2021-03-13 08:31:32 +08:00
hhahahahahaha ! -> hha!
这个怎么得到的。。。。 |
8
xiadong1994 2021-03-13 08:51:04 +08:00 via iPhone
问算法题请先把问题描述严谨了
|
9
AndyAO 2021-03-13 08:56:07 +08:00
先把需求描述清楚,如果很难,至少给出测试
|
10
Merlini 2021-03-13 09:23:46 +08:00 via Android
我觉得应该是搞一个 vocab,然后递归计算 edit distance 找最近的
|
11
FucUrFrd 2021-03-13 09:24:12 +08:00 via Android
李先生,Python 不是一般人学的,习学生批准了吗
|
12
Merlini 2021-03-13 10:06:48 +08:00 via Android
上面说错,不是递归是回溯
|
13
LeeReamond OP |
14
LeeReamond OP 另外请各位教我如何举报 11 楼,我 V2EX 使用不熟练
|
15
zxCoder 2021-03-13 14:29:12 +08:00
|
16
also24 2021-03-13 15:06:52 +08:00
@zxCoder #15
参考我在 4 楼回复的第二种处理方式,从右至左,一次性处理 (第二个 h 作为右边的 ha 被处理过了,所以没有被开头的 h 吃掉) h [ ha-ha-ha-ha-ha-ha ] |
17
keivenliao 2021-03-15 14:31:14 +08:00
我在想,这个需求,如果一大段英文做为输入,单个字符作为检测的话,输出岂不是一定为 a 到 z ?
|