持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情
本文主要利用leetcode上的一道题来解剖其涉及到的Python字符串反转,截取,连接,reverse()、reversed()方法的应用。
2000. 反转单词前缀
给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。如果 word 中不存在字符 ch ,则无需进行任何操作。
例如,如果 word = "abcdefd" 且 ch = "d" ,那么你应该 反转 从下标 0 开始、直到下标 3 结束(含下标 3 )。结果字符串将会是 "dcbaefd" 。 返回 结果字符串 。 示例 1:
输入:word = "abcdefd", ch = "d"
输出:"dcbaefd"
解释:"d" 第一次出现在下标 3 。
反转从下标 0 到下标 3(含下标 3)的这段字符,结果字符串是 "dcbaefd" 。
示例 2:
输入:word = "xyxzxe", ch = "z"
输出:"zxyxxe"
解释:"z" 第一次也是唯一一次出现是在下标 3 。
反转从下标 0 到下标 3(含下标 3)的这段字符,结果字符串是 "zxyxxe" 。
示例 3:
输入:word = "abcd", ch = "z"
输出:"abcd"
解释:"z" 不存在于 word 中。
无需执行反转操作,结果字符串是 "abcd" 。
题解: 关键:字符串截取,反转,拼接 解1:
class Solution:
def reversePrefix(self, word: str, ch: str) -> str:
return word if (idx:=word.find(ch)) == -1 else word[:idx+1][::-1] + word[idx+1:]
解2:
class Solution:
def reversePrefix(self, word: str, ch: str) -> str:
if word.find(ch):
pos = word.find(ch)
#示例1:''.join(reversed(word[0:pos+1])):dcba,
#word[pos+1:len(word)]:efd
return ''.join(reversed(word[0:pos+1])) + word[pos+1:len(word)]
else:
return word
Python reverse()方法
是python中列表的一个内置方法(也就是说,在字典,字符串或者元组中,是没有这个内置方法的),用于列表中数据的反转。
list1 = [1, 2, 3, 4, 5, 6]
list1.reverse()#这一步返回的是None,所以需要通过打印被作用的列表list1才可以查看出具体的效果。
print(list1)#[6, 5, 4, 3, 2, 1]
Python reversed()方法
在经过reversed()的作用之后,返回的是一个把序列值经过反转之后的迭代器,所以,需要通过遍历,或者List,或者next()等方法,获取作用后的值。
字符串的反转:
ss = "qwer1234"
print(''.join(reversed(ss)))
#打印结果:4321rewq
列表的反转:
bb = [1,3,5,7]
print(list(reversed(bb)))
#打印结果:[7, 5, 3, 1]
元组的反转:
aa = (1, 2, 3)
print(tuple(reversed(aa)))
#打印结果:(3, 2, 1)
Python切片[::-1]可用于翻转字符串
n = 12345
print(str(n)[::-1])#54321
var1 = 'Hello World!'
print(var1[:4][::-1])#lleH
print(var1[::-1])#!dlroW olleH
Python 截取字符串
Python 访问子字符串,可以使用方括号来截取字符串,如下实例:
var1 = 'Hello World!'
var2 = "Python"
print ("var1[0]: ", var1[0])#var1[0]: H
print ("var2[1:5]: ", var2[1:5])#var2[1:5]: ytho
Python 字符串连接
var1 = 'Hello World!'
print (var1[:6] + 'Zagiee!')#Hello Zagiee!
小tips
print(int('00982'))//982