C实现 题目 1209: 密码截获
题目描述
Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码 进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况 (abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的 有效密码串吗?
输入格式
测试数据有若干行字符串,包括字母,数字,符号。(字母区分大小写)
输出格式
与输入相对应每一行输出一个整数,代表最长有效密码串的长度。
样例输入
复制
<span style="color:#333333"><span style="color:#333333">ABBA
12ABBA
A
ABAKK
51233214
abaaab</span></span>
样例输出
复制
<span style="color:#333333"><span style="color:#333333">4
4
1
3
6
5</span></span>
#include <stdio.h>
#include <string.h>
int compare(char s1[],char s2[]);//比较翻转后的子串与子串是否完全一样
char * reverse(char a[]);//翻转子串
char s1[1000];//要测试输入的字符数组
char s2[1000];//获取子串的数组
char s3[1000];//保存翻转后的子串(这里为什么要声明一个全局字符数组s3?因为翻转函数返回的是地址,而在翻转函数中声明的字符数组生存期只在函数作用域内,出了函数这个字符数组就销毁了,返回的地址也就意义不明了)
char *s;//声明一个全局指针指向翻转后的子串。
int main(){int cnt;//每次比较时统计有多少个字符相等 int max;//比较完全后的最大值 int z;//z是辅助获取子串的变量 int t;//t是每次获取子串时的下标索引 while(gets(s1)!=NULL){z=strlen(s1)-1; cnt=0;max=cnt; for(int i=0;i<strlen(s1);i++){//可以理解为一个正三角子串,如 1234 4//i是每行最大子串的长度,也是每行子串的个数 3 34// 2 23 234// 1 12 123 1234 for(int j=0;j<=i;j++){t=0;for(int k=0;k<=j;k++){s2[t++]=s1[k+z];//这里z就是辅助获取子串 }s2[t]='\0';//别忘了添加结束符使之成为一个字符串 s=reverse(s2);//翻转 cnt=compare(s,s2);//获取比较后的值 if(max<cnt)max=cnt;}z--;}printf("%d\n",max);}
}
char* reverse(char a[]){int i=0;for(int j=strlen(a)-1;j>=0;i++,j--){s3[i]=a[j];}s3[i]='\0';return s3;
}
int compare(char s1[],char s2[]){int cnt=0;for(int i=0;i<strlen(s1);i++){if(s1[i]==s2[i])cnt++;else//遇见一个不匹配的直接结束函数 return 0;}return cnt;
}
C实现 题目 1209: 密码截获相关推荐
- 题目1209:最小邮票数
题目描述: 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值. 如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分.3分.4分即可. 输入: 有多组数据 ...
- 题目 1162: 密码
网上流传一句话:"常在网上飘啊,哪能不挨刀啊-".其实要想能安安心心地上网其实也不难,学点安全知识就可以. 首先,我们就要设置一个安全的密码.那什么样的密码才叫安全的呢?一般来说一 ...
- php实现 简单密码(代码颜色变化)
php实现 简单密码(代码颜色变化) 一.总结 一句话总结:写代码的时候一定要关注代码的颜色变化,不然低级错误害死人.常量变量会有不同颜色,所以$str少$符号变成常量的时候很容易发现. 1.变量$ ...
- 牛客网--密码验证合格程序(Java)
题目描述 密码要求: 1.长度超过8位 2.包括大小写字母.数字.其它符号,以上四种至少三种 3.不能有相同长度超2的子串重复 说明:长度超过2的子串 输入描述: 一组或多组长度超过2的子符串.每组占 ...
- 华为机试——简单密码
题目描述 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了.哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全. 假设渊子原来一个BBS上的密码为zvbo9441987 ...
- 九度笔记之 1209最小邮票数
题目1209:最小邮票数 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1176 解决:358 题目描述: 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值. 如,有1分 ...
- 万能密码HTTP基本方法 —— 【WUST-CTF2020】admin
文章目录 题目 万能密码 HTTP基本方法 请求头XFF字段设置 GET方法传参 POST方式传参 排列组合 BASE64解码 题目 题目hint:login in as admin 进入页面,很华丽 ...
- 【字符串2】(删除公共字符、合法括号序列判断、两种排序方法、密码强度等级)
字符串题集 1. 删除公共字符 题目描述 题目分析 C++代码 2. 合法括号序列判断 题目描述 题目分析 C++代码 3. 两种排序方法 题目描述 题目分析 C++代码 4. 密码强度等级 题目描述 ...
- 删除字符串中出现次数最少的字符,汽水瓶,简单密码
删除字符串中出现次数最少的字符 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序. 输入描述:字符串只包含小写英文字母, ...
最新文章
- 使用ActivityGroup需要注意的地方
- 几种常见的Shell
- 修订模式怎么彻底关闭_电脑玩游戏卡顿怎么办?
- Java项目转变为Java Web项目
- 盖洛普优势识别器2.0-《现在.发现你的优势》升级版
- 知识蒸馏论文翻译(9)—— Multi-level Knowledge Distillation via Knowledge Alignment and Correlation
- Unity 游戏框架搭建 2017 (二十四) 小结
- html id命名规范,常见的类名id名命名参考规范
- DBLE分库分表实战
- 多多自走棋改动_多多自走棋:官方更新久久未到,新版本内容或将引起巨大改变...
- 第10章 对象和类 -1
- PCIe link up bug 分析
- 游戏运营全过程剖析,游戏开发,游戏运营,游戏推广问题分析
- 龙腾四海 计算机操作,龙腾四海指标代码及基本用法介绍
- Chrome浏览器禁用TextBox的自动填充
- 拨号应用Dialer,更改默认fragment为通话记录。上下左右按键遇到edittext编辑框后继续原来的功能选择。关闭相机录像快门声音,避免快门声音录像录进。
- mysql怎么对列求和
- java多线程交替打印_使用Java实现三个线程交替打印0-74
- 快速理解 .bss、.data和.rodata
- python在同一行输入n个数转义符_Python
热门文章
- 开发实战:如何利用实时语音转写技术搞定会议纪要
- iframe异步加载性能优化及无阻塞加载
- linux jdk版本随时切换
- java数字(double/float)向上取整,向下取整,四舍五入
- 【MySQL】count(1)、count(*)、count(字段)、count(主键)的区别
- Python,超长文件名的解决方案
- 给新老师的20条贴心建议
- python随机生成10个浮点数_python生成10个随机数
- Word双栏格式下图片表格一栏排版 自定义位置
- Word字号对应数值