PTA 7-274 魔镜

分数 10
作者 usx程序设计类课程组
单位 绍兴文理学院

传说魔镜可以把任何接触镜面的东西变成原来的两倍,不过增加的那部分是反的。例如,对于字符串XY,若把Y端接触镜面,则魔镜会把这个字符串变为XYYX;若再用X端接触镜面,则会变成XYYXXYYX。对于一个最终得到的字符串(可能未接触魔镜),请输出没使用魔镜之前,该字符串最初可能的最小长度。

输入格式:
测试数据有多组,处理到文件尾。每组测试输入一个字符串(长度小于100,且由大写英文字母构成)。

输出格式:
对于每组测试数据,在一行上输出一个整数,表示没使用魔镜前,最初字符串可能的最小长度。

输入样例:

XYYXXYYX
XYXX

输出样例:

2
4

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

#include <stdio.h>
#include <string.h>int main() {char str[100];while (scanf("%s", str) != EOF) {// flag表示当前字符串是否继续折半往下判断int flag = 1;// 表示目前最小长度int length = (int) strlen(str);// 首先判断长度是否为奇数,如果为奇数则不是回文串直接输出长度后继续下次循环if (length % 2 == 1) {printf("%d\n", length);continue;}// 判断是否为回文串,是则折半判断,否则返回长度while (length != 1 && flag) {// 开始判断for (int i = 0; i < length; ++i) {if (str[i] != str[length - i - 1]) {printf("%d\n", length);flag = 0;break;}}if (flag) {length /= 2;}if(length == 1){printf("1\n");}}}return 0;
}

PTA 7-274 魔镜相关推荐

  1. 沈阳师范大学PTA百题刷分

    沈阳师范大学PTA百题刷分 6-1 函数选择法排序 (10分) 用选择法对数组a 进行由小到大的排序. 函数接口定义: void fun(int a[],int n) 其中a和n都是用户传入的参数,函 ...

  2. 西安邮电大学《面向对象与C++程序设计》PTA上机期末考试试题(随机)

    目录 考后感悟: 一.判断题 二.单选题 三.函数题 R6-1 编写一个函数模板Swap,实现两个变量交换. R6-2 从shape类派生出一个圆形类Circle R6-3 求正15边形的面积和周长 ...

  3. C语言 之 PTA乙级错误集锦

    1,很大很大的数输入,并各位加和  PTA-1001 #include <stdio.h> #include <math.h> int main(){int sum=0,cou ...

  4. PTA数据结构与算法题目集6-4 6-3 6-8

    PTA数据结构与算法题目集(中文) 6-4 链式表的按序号查找 ElementType FindKth( List L, int K ){int index = 0;while(L){++index; ...

  5. PTA数据结构与算法题目集 6-9 二叉树的遍历

    PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 void InorderTraversal( BinTree BT ){if(BT==NULL)return;if(BT->Left){ ...

  6. PTA 家庭房产 (图论,暴搜)

    PTA 家庭房产 (图论,暴搜) 题目详情: 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(≤1000),随后N ...

  7. PTA—输出全排列 (20分) 递归回溯思想

    PTA-输出全排列 (20分) 递归回溯思想 题目要求: 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出 ...

  8. PTA 基础编程题目集 6-6 求单链表结点的阶乘和

    PTA 基础编程题目集 6-6 求单链表结点的阶乘和 本题要求实现一个函数,求单链表L结点的阶乘和.这里默认所有结点的值非负,且题目保证结果在int范围内. 函数接口定义: int Factorial ...

  9. PTA 基础编程题目集 7-27 冒泡法排序 C语言

    PTA 基础编程题目集 7-27 冒泡法排序 C语言 将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们.通过一遍扫描,则最后一 ...

最新文章

  1. hql 语法与详细解释转
  2. GCT之数学公式(代数部分)
  3. 解决ubuntu打开windows中txt文件出现乱码现象
  4. python函数列表永久修改_python 禁止函数修改列表的实现方法
  5. python提取txt中指定内容_提取视频中的音频——python三行程序搞定!
  6. 记录hadoop HDFS与hadoop YARN无法访问问题
  7. Dubbo(十三)dubbo的负载均衡配置策略
  8. Pagerank-2
  9. python学习--关注容易被忽略的知识点---(一)python基础
  10. 用python画玫瑰花-使用Python画一朵玫瑰花
  11. 6N+/-1素数测试法
  12. APISpace 行驶证OCR API
  13. Java LocalDateTime给当前时间加半小时
  14. msvc2017配置qt5.12.8 x86和x64库版本切换
  15. 还记得有一年红帽考试的一道题吗?创建一个大小为250M的逻辑卷
  16. 微信小程序搜索框 回车搜索事件
  17. oracle去除字段里的汉字
  18. MySQL视图 视图的作用、视图常用语法
  19. 自然语言处理(英文停用词删除) Java程序
  20. 网络通信——客户端服务器端交互

热门文章

  1. 小孩近视用白炽灯好吗?使用护眼台灯有啥好处?
  2. 深入分析Android中Activity的onStop和onDestroy()回调延时及延时10s的问题
  3. 轻松玩转树莓派Pico之三、Windows+Ubuntu虚拟机模式下VSCode C语言开发环境搭建
  4. 六、常用的sql语句
  5. SecureCRT连接后乱码问题!!!
  6. JMeter_Ubuntu上安装jmeter
  7. 孤尽训练营打卡日记day14--第二周总结
  8. cadence原理图复用_详细了解一下Allegro原理图设计工具SDA 的十大主要功能和改变...
  9. 语义分割学习笔记(一)
  10. Kudu范围分区、Hash分区、多级分区