1309:【例1.6】回文数(noip1999)
时间: 2023-04-25 22:02:14 浏览: 196
题目描述:
如果一个数从左往右读和从右往左读是一样的,那么这个数就是回文数。例如:121、2332、12321都是回文数。
输入格式:
一个整数n(1<=n<=10000)
输出格式:
如果n是回文数,输出YES,否则输出NO。
样例输入:
12321
样例输出:
YES
解题思路:
将输入的整数n转换成字符串,然后判断字符串是否是回文字符串即可。
回文字符串的判断方法:将字符串反转,如果反转后的字符串和原字符串相等,则原字符串是回文字符串。
代码实现:
相关问题
7、判断一个数是不是回文数。例如:1234321 就是回文数解题思路
:判断一个数是否为回文数,可以将这个数转换成字符串,然后将字符串首尾对应位置的字符逐一比较,如果都相同,则是回文数。如果有一个不同,则不是回文数。具体实现可以参考如下代码:
```python
def is_palindrome(num):
str_num = str(num)
left, right = 0, len(str_num) - 1
while left < right:
if str_num[left] != str_num[right]:
return False
left += 1
right -= 1
return True
```
注:以上代码为Python示例代码,仅供参考。
回文是指正读反读均相同的字符序列,如“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 + "不是回文。")
```
该程序首先将输入字符串的前一半字符依次入栈,然后判断字符串长度的奇偶性,确定后一半字符的起始位置。接着,从起始位置开始遍历字符串的后一半字符,与栈中弹出的字符逐一比较,若有不同则说明该字符串不是回文,否则是回文。最后输出判断结果。