917. 仅仅反转字母(Python)

Python020

917. 仅仅反转字母(Python),第1张

难度:★☆☆☆☆

类型:字符

给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。

提示

S.length <= 100

33 <= S[i].ASCIIcode <= 122

S 中不包含 \ or "

示例 1

输入:"ab-cd"

输出:"dc-ba"

示例 2

输入:"a-bC-dEf-ghIj"

输出:"j-Ih-gfE-dCba"

示例 3

输入:"Test1ng-Leet=code-Q!"

输出:"Qedo1ct-eeLg=ntse-T!"

我们使用字典记录每个字符所在的位置,然后找出所有字母字符的位置并组成列表,将该列表逆序更新原字典,相当于只在有字母的位置上做字符串逆序,使用更新后的字典构建字母逆序的字符串。

我们定义左右指针,并初始化为字符串两端字符所在位置,然后两个指针逐渐向中间靠拢,当两个指针同时找到字母时,交换两指针处的字符,如果只有一个指针处是字母,那么另一个指针要继续移动,直到找到字母。循环控制条件是左指针不能到右指针右边。

如有疑问或建议,欢迎评论区留言~

苹果电脑双系统切换:在电脑开机或重启时,按着“option”键不松手。(详细请看下图)进入引导界面,有“Macintosh HD”和“windows”两个选项,进入Mac系统,用方向键选中“Macintosh HD”,回车即可进入。(详细请看下图)

去掉字符串中字母以外的字符,在Python编程语言中有多种实现方式。 Python中的str类型,有一个isalpha()方法,判断字符是否是英文字符。可以使用循环逐个字符判断是否是英文字符,如果是英文字符则加入新的字符串。