2013编程之美全国挑战赛 初赛第一场 题目2
来源:互联网 发布:xshell linux版 编辑:程序博客网 时间:2024/04/30 05:00
时间限制: 4000ms 内存限制: 256MB
描述
对于两个长度相等的字符串,我们定义其距离为对应位置不同的字符数量,同时我们认为距离越近的字符串越相似。例如,“0123”和“0000”的距离为 3,“0123”和“0213”的距离则为 2,所以与“0000”相比,“0213”和“0123”最相似。
现在给定两个字符串 S1 和 S2,其中 S2 的长度不大于 S1。请在 S1 中寻找一个与 S2 长度相同的子串,使得距离最小。
输入
输入包括多组数据。第一行是整数 T,表示有多少组测试数据。每组测试数据恰好占两行,第一行为字符串 S1,第二行为 S2。所有字符串都只包括“0”到“9”的字符。
输出
对于每组测试数据,单独输出一行“Case #c: d”。其中,c 表示测试数据的编号(从 1 开始),d 表示找到的子串的最小距离。
数据范围
1 ≤ T ≤ 100
小数据:字符串长度不超过 1000
大数据:字符串长度不超过 50000
- 样例输入
3012345678932101020304050607080940420121221211
- 样例输出
Case #1: 2Case #2: 1Case #3: 1
暴力过了小数据:
#include <iostream>#include <cstring>#include <cstdio>#include <string>char s1[50000],s2[50000];using namespace std;int main(){ int t,N,CA,CB,Case=1; scanf("%d",&t); getchar(); while(t--) { gets(s1); gets(s2); int len1,len2; len1 = strlen(s1); len2 = strlen(s2); int maxx = 0; for(int i = 0; i <= len1-len2; i++) { int ans = 0; for(int j = 0; j < len2; j++) { if(s1[i+j]==s2[j]) ans++; } if(ans > maxx) { maxx = ans; } } printf("Case #%d: %d\n",Case++,len2-maxx); } return 0;}
- 2013编程之美全国挑战赛 初赛第一场 题目2
- 编程之美 2013 全国挑战赛 初赛第一场 题目二 相似字符串
- 编程之美 2013 全国挑战赛 初赛第一场 题目二 相似字符串
- 编程之美挑战赛初赛第一场题目1
- 2013编程之美全国挑战赛初赛第二场-集会
- 2013编程之美全国挑战赛初赛第一场 第二题 相似字符串
- 编程之美挑战赛初赛第二场题目2
- 微软编程之美2013全国挑战赛 初赛第1场 第2题
- 微软2014编程之美挑战赛初赛第二场 题目2 : 字符串压缩
- 2015微软编程之美挑战赛初赛第2场
- 2014编程之美挑战赛初赛题目
- 2015编程之美挑战赛初赛题目
- 编程之美初赛第一场 题目3 : 活动中心
- 编程之美初赛第一场 题目1 : 焦距
- 编程之美 初赛第一场 题目3 : 活动中心
- 编程之美2014初赛第一场 题目1:焦距
- 2014编程之美初赛第一场题目3 : 活动中心
- 编程之美 2013 全国挑战赛 资格赛 题目二 长方形
- (android实战)线程池实现,并通过CompletionService,来实现反馈处理(转载)
- 心情随笔20130413
- Flex4 画图
- leetcode 129: Pascal's Triangle
- TheOraClusterNotes
- 2013编程之美全国挑战赛 初赛第一场 题目2
- ORACLE notes_2
- HDU Red and Black
- 关于redis存储积累
- web.config配置数据库
- 计算机视觉的网站收集
- linux内核的rtc时钟配置
- 动态获取资源ID
- 归并排序