面试题答案
一键面试- 切片操作实现字符串反转:
在Python中,可以使用切片操作
[::-1]
来反转字符串。对于给定的字符串s = 'abcdefghijklmnopqrstuvwxyz'
,反转后的字符串可以通过s[::-1]
得到。 - 步长、起始索引和结束索引设置思路:
- 步长:步长设置为
-1
表示从字符串的末尾向开头遍历。当步长为负数时,切片操作从右向左进行。 - 起始索引:起始索引省略时,默认从字符串的末尾开始。因为步长为
-1
,所以实际上是从字符串的最后一个字符开始。 - 结束索引:结束索引省略时,默认到字符串的开头(但不包含开头字符,因为Python切片是左闭右开原则)。由于步长为
-1
,这里实际上是到字符串的第一个字符之前结束。
- 步长:步长设置为
- 字符串长度奇偶性对切片操作边界条件处理的影响:
- 偶数长度字符串:例如字符串
'abcd'
,反转操作'abcd'[::-1]
时,从最后一个字符d
开始,以步长-1
向左遍历,依次取到c
、b
、a
,按照从右向左的顺序得到'dcba'
。 - 奇数长度字符串:例如字符串
'abcde'
,反转操作'abcde'[::-1]
同样从最后一个字符e
开始,以步长-1
向左遍历,依次取到d
、c
、b
、a
,得到'edcba'
。 可以看出,无论是偶数长度还是奇数长度的字符串,使用[::-1]
这种切片操作进行反转时,在边界条件处理上没有差异。因为切片操作是按照步长从右向左依次取字符,不依赖于字符串长度的奇偶性。
- 偶数长度字符串:例如字符串
在Python代码中的实现如下:
s = 'abcdefghijklmnopqrstuvwxyz'
reversed_s = s[::-1]
print(reversed_s)