注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

OI之路,漫漫人生

只为梦想,没有理由

 
 
 

日志

 
 

POJ1951Extra Krunch  

2014-03-11 21:51:37|  分类: POJ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
                                                                            krunch词
                                                                                         BY   LGS
题目大意:读入一个S字符串,进行KRUNCH处理为目标单词,各种条件不再赘述。

题解:字符串处理,我转C++不久,对于此块内容非常薄弱。对于读入的S,空格在头尾判断,AEIOU判断,ans串若要加空格了,条件是上一个不是空格,标点有3个:。 ? ,  标点前不会能空格。以上几点就可以A了。
还有这题我的代码在POJ上用C++交运行时错误,用G++就A了,好奇怪。自己测数据也是对的。

总结:字符串处理我最讨厌了,不过想办法要克服,加油!!代码若有错误的地方请读者给我留言。
代码:
#include<cstdio>
#include<cstring>
#include<string>
#include <iostream>
using namespace std;
char ch;
string a,b;
int l,i,j,n,m,t,k;
bool hash[200];
bool cuo(int w)
 {
 if (a[w]=='.'||a[w]=='?'||a[w]==',') return true;
 return false; 
 }
int main()
{
 while    ((ch=getchar())!=EOF) a+=ch;
 l=a.length();t=0;
 for (i=0;i<=l-1;i++)
  {
  if (a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='U'||a[i]=='O')
   continue;
  if (a[i]==' '){
  if (((a[i-1]!=' '))&&(!cuo(i+1))&&(t!=0)&&(i!=l-1)&&(b[t-1]!=' '))
                           {b[t]=a[i];t++;}
                }
       else if (!cuo(i)){
   if  (!hash[a[i]]){b[t]=a[i];t++;hash[a[i]]=true;}
                        }
         else {b[t]=a[i];t++;}
  }
for (i=0;i<=t-1;i++){ 
   if (b[i]==' '&&(b[i+1]=='.'||b[i+1]=='?'))continue;
                 printf("%c",b[i]);
                    }
//for(;;);
return 0;
}
  评论这张
 
阅读(10)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018