找不同程序
来源:互联网 发布:mac登录win远程桌面 编辑:程序博客网 时间:2024/05/16 23:48
作用
辅助程序查错
使用
输入两段目标文本,都以0结尾
代码
#include <iostream>#include <cstdio>#include <algorithm>#include <iomanip>using namespace std;string a[205];string b[205];void Delete_Black(string &s) //删去一行字符串中的空格{ int index = 0; if( !s.empty()) { while( (index = s.find(' ',index)) != string::npos) //string::npos意为不存在,即字符串结尾 { s.erase(index,1); //删除从index开始的一个字符,即空格 } index=0; while( (index = s.find(9,index)) != string::npos) //string::npos意为不存在,即字符串结尾 { s.erase(index,1); //删除从index开始的一个字符,即TAB } }}void Pre() //先对两个文本进行去空格处理并输出{ cout<<"对两个文本输出处理后结果:"<<endl; for(int i=0;a[i].compare("0")&&b[i].compare("0");i++) { cout<<left<<setw(3)<<i+1<<left<<setw(50)<<a[i]; cout<<left<<setw(3)<<i+1<<b[i]<<endl; } cout<<endl;}int main(){ int flag=1; //标记是否存在不同 //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int i; for(i=0;getline(cin,a[i]);i++) { Delete_Black(a[i]); if(a[i]=="\0") i--; //跳过空格处理 if(!a[i].compare("0")) break; //碰到0时跳出 } int j; for(j=0;getline(cin,b[j]);j++) { Delete_Black(b[j]); if(b[j]=="\0") j--; if(!b[j].compare("0")) break; } Pre(); cout<<"在前"<<min(i,j)<<"行,在去除空行及空格、TAB后,两段文本:"<<endl; for(int k=0;k<min(i,j);k++) { if(a[k].compare(b[k])) { flag=0; cout<<"第"<<k+1<<"行不同"<<endl; } } if(flag) cout<<"完全相同"<<endl; return 0;}
示例
输入
#include<cstdio>#include<cstring>
#include<algorithm>
using namespace std;
char a[520],b[520];
int dp[520][520];
int main()
{
while (~scanf("%s",a))
{
scanf("%s",b);
int n=strlen(a);
int m=strlen(b);
memset(dp,0,sizeof(dp));
for (int i=0;i<m;i++)
if (a[0]==b[i])
dp[0][i]=1;
for (int i=0;i<n;i++)
if (b[0]==a[i])
dp[i][0]=1;
for (int i=1;i<n;i++)
for (int j=1;j<m;j++)
if (a[i]==b[j])
dp[i][j]=dp[i-1][j-1]+1;
else
dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
printf("%d\n",dp[n-1][m-1]);
}
return 0;
}
ssdf
sdfssdfs
sdfsdf
dsfs
0
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char a[520],b[520];
int dp[520][520];
int main()
{
while (~scanf("%s",a))
{
scanf("%s",b);
int n=strlen(a);
int m=strlen(b);
memset(dp,0,sizeof(dp));
for (int i=0;i<m;i++)
if (a[0]==b[i])
dp[0][i]=1;
for (int i=0;i<n;i++)
if (b[0]==a[i])
dp[i][0]=1;*/
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
if (a[i-1]==b[j-1])
dp[i][j]=dp[i-1][j-1]+1;
else
dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
printf("%d\n",dp[n][m]);
}
return 0;
}
0
输出
对两个文本输出处理后结果:
1 #include<cstdio> 1 #include<cstdio>
2 #include<cstring> 2 #include<cstring>
3 #include<algorithm> 3 #include<algorithm>
4 usingnamespacestd; 4 usingnamespacestd;
5 chara[520],b[520]; 5 chara[520],b[520];
6 intdp[520][520]; 6 intdp[520][520];
7 intmain() 7 intmain()
8 { 8 {
9 while(~scanf("%s",a)) 9 while(~scanf("%s",a))
10 { 10 {
11 scanf("%s",b); 11 scanf("%s",b);
12 intn=strlen(a); 12 intn=strlen(a);
13 intm=strlen(b); 13 intm=strlen(b);
14 memset(dp,0,sizeof(dp)); 14 memset(dp,0,sizeof(dp));
15 for(inti=0;i<m;i++) 15 for(inti=0;i<m;i++)
16 if(a[0]==b[i]) 16 if(a[0]==b[i])
17 dp[0][i]=1; 17 dp[0][i]=1;
18 for(inti=0;i<n;i++) 18 for(inti=0;i<n;i++)
19 if(b[0]==a[i]) 19 if(b[0]==a[i])
20 dp[i][0]=1; 20 dp[i][0]=1;*/
21 for(inti=1;i<n;i++) 21 for(inti=1;i<=n;i++)
22 for(intj=1;j<m;j++) 22 for(intj=1;j<=m;j++)
23 if(a[i]==b[j]) 23 if(a[i-1]==b[j-1])
24 dp[i][j]=dp[i-1][j-1]+1; 24 dp[i][j]=dp[i-1][j-1]+1;
25 else 25 else
26 dp[i][j]=max(dp[i-1][j],dp[i][j-1]); 26 dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
27 printf("%d\n",dp[n-1][m-1]); 27 printf("%d\n",dp[n][m]);
28 } 28 }
29 return0; 29 return0;
30 } 30 }
在前30行,在去除空行及空格、TAB后,两段文本:
第20行不同
第21行不同
第22行不同
第23行不同
第27行不同
1 #include<cstdio> 1 #include<cstdio>
2 #include<cstring> 2 #include<cstring>
3 #include<algorithm> 3 #include<algorithm>
4 usingnamespacestd; 4 usingnamespacestd;
5 chara[520],b[520]; 5 chara[520],b[520];
6 intdp[520][520]; 6 intdp[520][520];
7 intmain() 7 intmain()
8 { 8 {
9 while(~scanf("%s",a)) 9 while(~scanf("%s",a))
10 { 10 {
11 scanf("%s",b); 11 scanf("%s",b);
12 intn=strlen(a); 12 intn=strlen(a);
13 intm=strlen(b); 13 intm=strlen(b);
14 memset(dp,0,sizeof(dp)); 14 memset(dp,0,sizeof(dp));
15 for(inti=0;i<m;i++) 15 for(inti=0;i<m;i++)
16 if(a[0]==b[i]) 16 if(a[0]==b[i])
17 dp[0][i]=1; 17 dp[0][i]=1;
18 for(inti=0;i<n;i++) 18 for(inti=0;i<n;i++)
19 if(b[0]==a[i]) 19 if(b[0]==a[i])
20 dp[i][0]=1; 20 dp[i][0]=1;*/
21 for(inti=1;i<n;i++) 21 for(inti=1;i<=n;i++)
22 for(intj=1;j<m;j++) 22 for(intj=1;j<=m;j++)
23 if(a[i]==b[j]) 23 if(a[i-1]==b[j-1])
24 dp[i][j]=dp[i-1][j-1]+1; 24 dp[i][j]=dp[i-1][j-1]+1;
25 else 25 else
26 dp[i][j]=max(dp[i-1][j],dp[i][j-1]); 26 dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
27 printf("%d\n",dp[n-1][m-1]); 27 printf("%d\n",dp[n][m]);
28 } 28 }
29 return0; 29 return0;
30 } 30 }
在前30行,在去除空行及空格、TAB后,两段文本:
第20行不同
第21行不同
第22行不同
第23行不同
第27行不同
阅读全文
0 0
- 找不同程序
- 找不同
- 找不同
- 找不同
- 找不同。。。
- 找程序
- 找唯一不同
- WOJ1202-找不同
- WOJ-202 找不同
- 我就要找不同
- 【找不同】上海和北京
- 程序题找错误
- 南京找程序师傅
- 程序找BUG
- 找出口程序
- 找增强程序
- 找素数程序
- 本日供应今日,微软找不同答案。
- 如何自定义checkbox的样式
- Java面试题---只用两个变量,如何做到把两个整数交换?
- spring-开篇
- 吉几三的俺ら东京さ行ぐだ歌词
- CodeForces 831 B.Keyboard Layouts(水~)
- 找不同程序
- spark环境运行程序遇到几个坑
- 25.ContentProvider自定义内容提供者与ContentResolver内容访问者
- AndroidStudio logcat颜色设置
- Python2与Python3中关于最上层类继承上的一点小差异
- JS特效之简单动画封装
- 关于Delphi中Published和Public的区别
- linux系统虚拟机的安装与调试
- PC端windows与虚拟机linux之间文件的传输方式总结