现在的位置: 首页 > 综合 > 正文

POJ3096  708K0MS

2015年12月29日 ⁄ 综合 ⁄ 共 1313字 ⁄ 字号 评论关闭
//参考的,也许更简洁
#include
#include
using namespace std;
int main(){
char str[80];
while(cin>>str&&str[0]!='*'){
int len=strlen(str),flag=0;
for(int i=1;i<=len-2&&!flag;i++){
int a[700]={0};
for(int j=0;j+i
int k=(str[j]-'A')*26+str[i+j]-'A';
if(a[k]!=0) flag=1;
else a[k]=1;
}
}
  if(flag)
cout<<str<<" is NOT
surprising."<<endl;
else
   cout<<str<<"
is surprising."<<endl;
}
return 0;
}
//这道题一开始是想用映射,根据第二指针值判断有无重复,但写了几次调试出错,目前还不知道为什么,欢迎指导
#include
#include
using namespace std;
typedef map record;
int main(){
string str;
while(cin>>str&&str!="*"){
int flag=0,len=str.size();
if(len>2){
 for(int
i=0;!flag&&i<=len-2;i++)
{
record re;
for(int j=0;j<=len-2-i;j++)
{
string s;
s[0]=str[j];
s[1]=str[j+i+1];
re[s]++;
}
for(record::iterator it=re.begin();it!=re.end();it++)
 if((*it).second>1) 
 {
  flag=1;
  break;
 
}
}
if(flag) cout<<str<<" is NOT
surprising."<<endl;
else cout<<str<<" is
surprising."<<endl;
}
return 0;
//老实换成字符串处理,也不知道为什么调试不过,也许问题出在同一个地方
#include
#include
using namespace std;
int main(){
    char str[80];
    int flag,len;
while(cin>>str&&strcmp(str,"*")!=0){
flag=0,len=strlen(str);
if(len>2){
for(int i=0;!flag&&i<=len-2;i++){
  char c[80][2];
int y,j,k;
for(y=0,j=0;j<=len-2-i;j++,y++){
c[y][0]=str[j];
c[y][1]=str[j+i+1];
}
for(j=0;j<=y-2&&!flag;j++)
 for(k=j+1;k<=y-1&&!flag;k++)
 
 if(strcmp(c[j],c[k])==0)
    flag=1;
   
   }
   }
if(flag) cout<<str<<" is NOT
surprising."<<endl;
else cout<<str<<" is
surprising."<<endl;
}
return 0;
【上篇】
【下篇】

抱歉!评论已关闭.