1309:【例1.6】回文数(noip1999)
时间: 2023-04-25 16:02:14 浏览: 354
题目描述:
如果一个数从左往右读和从右往左读是一样的,那么这个数就是回文数。例如:121、2332、12321都是回文数。
输入格式:
一个整数n(1<=n<=10000)
输出格式:
如果n是回文数,输出YES,否则输出NO。
样例输入:
12321
样例输出:
YES
解题思路:
将输入的整数n转换成字符串,然后判断字符串是否是回文字符串即可。
回文字符串的判断方法:将字符串反转,如果反转后的字符串和原字符串相等,则原字符串是回文字符串。
代码实现:
相关问题
回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个程序判定给定的字符向量是否为回文,用栈实现。(提示:将一半字符入栈) 输入格式: 输入任意字符串。 输出格式: 若字符串是回文,输出:xxxx是回文。 若字符串不是回文,输出:xxxx不是回文。 输入样例: abba 输出样例: abba是回文。 输入样例: abdba 输出样例: abdba是回文。 输入样例: good 输出样例: good不是回文。 代码长度限制
以下是使用Python语言实现的代码,利用栈来判断给定的字符向量是否为回文:
```python
s = input() # 输入任意字符串
stack = []
mid = len(s) // 2
for i in range(mid):
stack.append(s[i])
if len(s) % 2 == 0:
start = mid
else:
start = mid + 1
flag = True
for i in range(start, len(s)):
if s[i] != stack.pop():
flag = False
break
if flag:
print(s + "是回文。")
else:
print(s + "不是回文。")
```
该程序首先将输入字符串的前一半字符依次入栈,然后判断字符串长度的奇偶性,确定后一半字符的起始位置。接着,从起始位置开始遍历字符串的后一半字符,与栈中弹出的字符逐一比较,若有不同则说明该字符串不是回文,否则是回文。最后输出判断结果。
判断当前输入的字符串是否为回文 【例:abcba属于回文(即正序反序均相同)】
以下是Python代码实现:
```python
def isPalindrome(s):
"""
判断字符串是否为回文
"""
return s == s[::-1] # 判断正序和反序是否相同
# 测试
s = input("请输入一个字符串:")
if isPalindrome(s):
print(s, "是回文")
else:
print(s, "不是回文")
```
我们先定义一个isPalindrome函数用于判断字符串是否为回文,实现方法是判断字符串的正序和反序是否相同。
接着通过input函数获取用户输入的字符串,并调用isPalindrome函数进行判断,根据结果输出对应的提示信息。
阅读全文