您的位置:首页 > 编程语言

UVA10361转化思想使代码更加简洁

2015-07-20 10:09 288 查看
自己写的代码不够简洁,使用转化思想把<和>以及\n转化为\0将会使代码更加简单,把重点放在输出上,当输入改变对于输出没有影响时可以任意改变输入,甚至可以一边输入

一边改变,下面给出自己的代码,和转化思想代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cctype>
#include<string>
#include<map>
#include<set>
#include<cmath>
#include<vector>
#include<queue>
#include<stack>
using namespace std;
int main()
{
int t ;
cin>>t;
getchar();
while(t--)
{
char s1[105],s2[105];
int a1,a2,a3,a4,a5;
gets(s1);
gets(s2);
int a[6];
int len=1;
//  int tem=0,tem1=0;
for(int i=0;i<strlen(s1);i++)
{
/*if(s1[i]=='<'&&!tem)
{
tem=1;
a1=i;
}
if(s1[i]=='<'&&tem)
{
a3=i;
}
if(s1[i]=='>'&&!tem1)
{
tem1=1;
a2=i;
}
if(s1[i]=='>'&&tem1)
{
a4=i;
}*/
if(s1[i]=='<'||s1[i]=='>')
a[len++]=i;
}
for(int i=0;i<strlen(s2);i++)
if(s2[i]=='.')
{
a[len++]=i;
}
for(int i=0;i<strlen(s1);i++)
{
if(s1[i]=='<'||s1[i]=='>')
continue;
cout<<s1[i];
}
cout<<endl;
for(int i=0;i<a[5];i++)
{
cout<<s2[i];
}
for(int i=a[3]+1;i<a[4];i++)
cout<<s1[i];
for(int i=a[2]+1;i<a[3];i++)
cout<<s1[i];
for(int i=a[1]+1;i<a[2];i++)
cout<<s1[i];
for(int i=a[4]+1;i<strlen(s1);i++)
cout<<s1[i];
cout<<endl;
}
return 0;
}


#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cctype>
#include<string>
#include<map>
#include<set>
#include<cmath>
#include<vector>
#include<queue>
#include<stack>
using namespace std;
void getss(char s[])
{
int i;
for(int i=0;i<110;i++)
{
if((s[i]=getchar())=='<'||s[i]=='>'||s[i]=='\n')
{
s[i]='\0';
break;
}
}
}
int main()
{
int t;
cin>>t;
getchar();
while(t--)
{
char s1[110],s2[110],s3[110],s4[110],s5[110],line[110];
getss(s1);
getss(s2);
getss(s3);
getss(s4);
getss(s5);
gets(line);
line[strlen(line)-3]='\0';
printf("%s%s%s%s%s\n",s1,s2,s3,s4,s5);
printf("%s%s%s%s%s\n",line,s4,s3,s2,s5);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: