Infinite String Comparision
思路:
这道题看起来不是很难,但是里面omparing a∞-b∞,所以需要注意两个字符串比较的方式。在比较的时候用循环,并不需要将不同长度的字符串重复,延长类似无穷长进行比较,只需要将两者各自循环重复一次若无答案便说明二者“=”,否则会出现a[i]>a[j]或a[i]<a[j]的。
代码如下:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int i,j,flag=0;
string a,b;
while(cin>>a>>b)
{
i=0;
j=0;
long long cnt=0;
if(a.size()>=b.size())
{
flag=0;
}
else {
flag=1;
}
while(1)
{
if(cnt==2)
{
cout<<"="<<endl;
break;
}
if(i==a.size())
{
i=0;
if(flag==0)
cnt++;
}
if(j==b.size())
{
j=0;
if(flag==1)
cnt++;
}
if(a[i]==b[j])
{
i++;
j++;
continue;
}
if(a[i]>b[j])
{
cout<<">"<<endl;
break;
}
if(a[i]<b[j])
{
cout<<"<"<<endl;
break;
}
i++;
j++;
}
}
return 0;
}
输入数据:
aa
b
zzz
zz
aba
abaa
输出数据:
<
=
.>