总时间限制:1000ms 内存限制: 65536kB

描述

给出一系列非负整数,判断是否是一个回文数。回文数指的是正着写和倒着写相等的数。

输入

一行,一个01字符串。

输出

若干行,每行是一个非负整数(不超过99999999)

样例输入

11

123

0

14277241

67945497

样例输出

YES

NO

YES

YES

NO


ps.这个题是若干行输入...

题目链接

ac代码

/*
@File : palidrome.cpp
@Time : 2020/03/25 09:47:24
@Desc : 回文数字(Palindrome Number)
*/
#include <iostream>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 20 using namespace std;
//栈
typedef struct
{
char data[MAX_LEN];
int top;
}Stack;
//初始化
void InitStack(Stack *&stack);
//压栈
bool Push(Stack *&stack, const char num);
//弹栈
bool Pop(Stack *&stack);
//栈是否为空
bool Empty(const Stack *stack);
//获取栈顶
bool get_top(const Stack *stack, char &top);
//判断非负整数是否为回文数
bool JudgePalindrome(const string num);
int main(int argc, char const *argv[])
{
char num[MAX_LEN];
while (gets(num)) //直接cin一个数据不能过
{ //别问我为啥
if (JudgePalindrome(num)) cout << "YES\n"; //
else cout << "NO\n";
}
system("pause");
return 0;
}
void InitStack(Stack *&stack)
{
stack = (Stack*)malloc(sizeof(Stack));
stack->top = -1;
}
bool Push(Stack *&stack, const char num)
{
if (stack->top == MAX_LEN - 1) return false;
stack->top++;
stack->data[stack->top] = num;
return true;
}
bool Pop(Stack *&stack)
{
if (Empty(stack)) return false;
stack->top--;
return true;
}
bool Empty(const Stack *stack)
{
return (stack->top == -1);
}
bool get_top(const Stack *stack, char &top)
{
if (Empty(stack)) return false;
top = stack->data[stack->top];
return true;
}
bool JudgePalindrome(const string num)
{
Stack *stack;
char top = 'n';
int mid = num.size()/2 - 1;
InitStack(stack);
for (int i = 0; i <= mid; i++) Push(stack,num[i]);
if (num.size()%2 == 0) {
for (int i = mid + 1; i < num.size(); i++) {
get_top(stack,top);
if (top == num[i]) Pop(stack);
}
} else {
for (int i = mid + 2; i < num.size(); i++) {
get_top(stack,top);
if (top == num[i]) Pop(stack);
}
}
return Empty(stack);
}

最新文章

  1. 面向对象相关知识点xmind
  2. 一种简单,轻量,灵活的C#对象转Json对象的方案(续)
  3. StartCom 申请 SSL 证书及 Nginx HTTPS 支持配置全攻略
  4. C#学习笔记-----C#枚举中的位运算权限分配
  5. 【转】个人对JQuery Proxy()函数的理解
  6. Python-S13作业-day1-之登陆程序
  7. 1.2 认识ASP.NET MVC项目结构
  8. HDU 1312 Red and Black DFS(深度优先搜索) 和 BFS(广度优先搜索)
  9. MR 的 mapper 数量问题
  10. 深入理解计算机系统第二版习题解答CSAPP 2.13
  11. Ubuntu下配置tftp服务
  12. Hibernate缓存杂谈
  13. BZOJ3036: 绿豆蛙的归宿&amp;Wikioi2488:绿豆蛙的归宿
  14. poj1163The Triangle(简单DP)
  15. DynamicReports
  16. 用bat启动sqlserver服务
  17. java 图形界面
  18. javascript与jQuery选项卡效果
  19. bzoj 3594: [Scoi2014]方伯伯的玉米田
  20. Java泛型用法总结

热门文章

  1. 史上最全!2020面试阿里,字节跳动90%被问到的JVM面试题(附答案)
  2. 用FL Studio来给电子音乐混音的方法
  3. 怎么用Camtasia给视频添加片头片尾
  4. 从Guarded Block来看Java中的wait和notify方法
  5. JUC并发工具包之CountDownLatch
  6. 15.java设计模式之访问者模式
  7. 关于你天天见到的JDK、JRE和JVM
  8. Eclipse的新建工作空间如何用以前工作空间的配置
  9. JZOJ 2020.10.7 提高B组反思
  10. 基于struts2的记住账号密码的登录设计