博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2013华为招聘上机--- 字符串处理转换
阅读量:7110 次
发布时间:2019-06-28

本文共 1172 字,大约阅读时间需要 3 分钟。

问题描述:    

在给定字符串中找出单词( “单词”由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等;另外单个字母不算单词);找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次;如果整个输入的字符串中没有找到单词,请输出空串。输出的单词之间使用一个“空格”隔开,最后一个单词后不加空格。
要求实现函数:
void my_word(charinput[], char output[])
【输入】  char input[], 输入的字符串
【输出】  char output[],输出的字符串
【返回】 无
示例
输入:charinput[]="some local buses, some1234123drivers" ,
输出:charoutput[]="drivers local buses some"
输入:charinput[]="%A^123 t 3453i*()" ,

输出:charoutput[]=""

 

#include 
#include
#include
#include
#include
#include
#include
#include
using namespace std;bool cmp(string a,string b){ return a.size()>b.size(); }void my_word(char input[], char output[]){ string s(input); for(int i=0;i!=s.size();i++) { if( !(s[i]>='a'&&s[i]<='z' || s[i]>='A'&&s[i]<='Z') ) s[i]=' '; } stringstream ss(s); string tmp; vector
vec; while(ss>>tmp) { if(tmp.size()!=1) vec.push_back(tmp); } stable_sort(vec.begin(),vec.end(),cmp); vector
::iterator ite=unique(vec.begin(),vec.end()); string re=""; for(vector
::iterator it=vec.begin();it!=ite;it++) { re+=*it; re+=" "; } if(re.size()==0){output[0]='\0';cout<
<

 

 

转载地址:http://lclhl.baihongyu.com/

你可能感兴趣的文章
【安卓特效】怎样给ImageView加上遮罩,点击时泛黑、或泛白、?
查看>>
HDU--3829--Cat VS Dog【最大点独立集】
查看>>
第十一章 非对称加密算法--DH
查看>>
iframe超时处理。。。。
查看>>
Codeforces554A:Kyoya and Photobooks
查看>>
PHP curl_setopt函数用法介绍补充篇
查看>>
汇编题目:在屏幕中间显示a-z的所有字母,按ESC键改变字符颜色
查看>>
Codeforces Round #249 (Div. 2) A B
查看>>
c++11 新特性之 autokeyword
查看>>
HDU 5627 Clarke and MST &意义下最大生成树 贪心
查看>>
jQuery html表格排序插件:tablesorter
查看>>
myeclipse10不用打开myeclipse configuration center安装插件的方法
查看>>
hbase自带mapreduce计数表行数功能
查看>>
Spring中自己主动装配
查看>>
数组去重复
查看>>
Swift - guard关键字(守护)
查看>>
sharepreference实现记住password功能
查看>>
http与https的区别
查看>>
【JavaScript】ReactJS&NodeJS了解资料
查看>>
springMVC demo搭建
查看>>