📌  相关文章
📜  国际空间研究组织 | ISRO CS 2011 |问题 46(1)

📅  最后修改于: 2023-12-03 14:50:46.600000             🧑  作者: Mango

国际空间研究组织(ISRO)CS 2011 - 问题 46

题目描述

国际空间研究组织(ISRO)在编程竞赛CS 2011中提出了一道问题,题号为46。这个问题需要编写一个程序来解决。

题目要求

编写一个程序,判断一个给定的字符串是否是回文串。

输入格式
  • 输入包含一个字符串。
输出格式
  • 如果给定的字符串是回文串,则输出 "Yes"。
  • 如果给定的字符串不是回文串,则输出 "No"。
示例

输入

racecar

输出

Yes
解题思路

我们可以使用双指针技术来解决这个问题。首先,定义两个指针,一个指向字符串的开头,一个指向字符串的结尾。然后,逐个比较指针所指的字符是否相等。如果不相等,则字符串不是回文串。如果相等,则继续向中间靠拢,直到两个指针相遇。

代码实现
def is_palindrome(string):
    left = 0
    right = len(string) - 1
    
    while left <= right:
        if string[left] != string[right]:
            return "No"
        left += 1
        right -= 1
    
    return "Yes"

input_string = input()
print(is_palindrome(input_string))

以上是一个解决ISRO CS 2011问题46的可能解答。这个程序接受一个输入字符串,并通过双指针判断输入字符串是否是回文串。返回 "Yes" 表示是回文串,返回 "No" 表示不是回文串。

请注意,这只是一个示例答案,可能有其他不同的解决方法。