Python 程序:检查字符串是否为回文

给定一个字符串,我们的任务是检查它是否为回文。所谓回文,是指正读和反读都相同的字符串例如,“madam”是一个回文,而“hello”则不是。

使用双指针技术

这种方法从两端向中间逐个比较字符。它是最有效的,因为它只检查字符串的一半,而无需创建额外的副本。

Python


CODEBLOCK_ce273759

Output

Yes

说明:

  • while 循环 会在 i < j 的条件下,从两端向中心比较字符。
  • 如果没有发现不匹配,指针会向内移动以进行下一次比较。
  • 循环结束后,如果 is_palindrome 为 True,则打印“Yes”,否则打印“No”。

使用 all() 配合生成器表达式

这种方法利用生成器表达式来检查所有镜像位置的字符是否相等。如果所有比较都通过,则该字符串是回文。

Python


CODEBLOCK_5603da4f

Output

Yes

说明:

  • range(len(s)//2) 生成字符串前半部分的索引。
  • s[-i-1] 访问从字符串末尾开始的字符。
  • s[i] == s[-i-1] 检查镜像位置的字符是否相等。
  • all() 只有当每个比较结果都为 True 时才返回 True。

使用切片

这种方法使用切片 (s[::-1]) 来反转字符串,并将其与原始字符串进行比较。如果两者匹配,则该字符串是回文。

Python


CODEBLOCK_7e18332e

Output

Yes

说明: 它将字符串 s 与其反转形式 s[::-1] 进行比较。如果相等,则打印“Yes”,否则打印“No”。

使用 reversed() + join()

这种方法利用 reversed()join() 创建字符串的反转版本,然后将其与原始字符串进行比较。如果它们匹配,则是回文。

Python


CODEBLOCK_9241b995

Output

No

说明: 它使用 ‘‘.join(reversed(s)) 创建字符串的反转版本,并将其与原始字符串进行比较。如果相等,则打印“Yes”,否则打印“No”。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/42903.html
点赞
0.00 平均评分 (0% 分数) - 0