字符串反转
Posted turboliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串反转相关的知识,希望对你有一定的参考价值。
笔者曾经面试的时候遇见过一次字符串反转这类笔试题,今天回想起来,所以拿出来给大家分享一下。下面是这个题目要求以及示例。
题目描述:
1. 给定一个字符串,将其中的每一个单词进行翻转并输出翻转后的字符串
2. 单词的定义为“连续的由字母组成的子串”,例如"abc-1de/fg"的单词有3个,为["abc", "de", "fg"]
示例:
输入:"abc-1de/fg"
输出:"cba-1ed/gf"
首先,从示例中,我们可以看出,在这个字符串中,会有连续的字母组成的字符串,题目的要求是让这些连续的字母字符串进行反转,然后放回原来的位置。不是字母的保留在原来的位置。所以我们可以选择RE正则表达式中的sub的替换。把连续的字母字符串通过正则取出来,放进一个list中,然后对这个list进行反转reserve。这时候的list也就是一个列表字符串,我们需要把每一个元素都取出来,进行拼接,组装成一个连续字母字符串。再通过sub进行放回取出的位置。代码如下:
import re def fun(temp): ret = temp.group() l = [] for s in ret: l.append(s) l.reverse() str = ‘‘ for s in l: str += s return str # str1 = ‘abc-1de/fg‘ str1 = ‘1233aasxcd/-1w12=sdeer‘ ret = re.sub(r‘([a-zA-Z]+)‘, fun, str1) print(ret)
以上是关于字符串反转的主要内容,如果未能解决你的问题,请参考以下文章
使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化
2022&2023华为OD机试 - 单词反转 2(Python)