• 2013华为招聘上机--- 字符串处理转换


    问题描述:    
    在给定字符串中找出单词( “单词”由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等;另外单个字母不算单词);找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次;如果整个输入的字符串中没有找到单词,请输出空串。输出的单词之间使用一个“空格”隔开,最后一个单词后不加空格。
    要求实现函数:
    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 <iostream>
    #include <cstring>
    #include <string>
    #include <sstream>
    #include <cctype>
    #include <set>
    #include <vector>
    #include <algorithm>
    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<string> vec;
    	while(ss>>tmp)
    	{
    		if(tmp.size()!=1)
    			vec.push_back(tmp);
    	}
    	stable_sort(vec.begin(),vec.end(),cmp);
    	vector<string>::iterator ite=unique(vec.begin(),vec.end()); 
    	string re="";
    	for(vector<string>::iterator it=vec.begin();it!=ite;it++)
    	{
    		re+=*it;
    		re+=" ";
    	}
    	if(re.size()==0){output[0]='';cout<<output<<endl;return;}
    	int i;
    	for(i=0;i!=re.size()-1;i++)
    		output[i]=re[i];
    	output[i]='';	
    	cout<<output<<endl;
    	
    }
    int main()
    {
    	
    	char input[]="some local buses, some1234123drivers";
    	char output[1000];
    	my_word(input,output);
    	
    }


  • 相关阅读:
    Tensorflow2.0基础
    Tensorflow2.0多层感知机实现mnist手写数字识别
    numpy数组的维度操作和axis的对应关系
    jupyter notebook使用
    darknet批量测试并保存图片
    darknet训练自身数据集的小问题
    PIL批量更改图片格式 及bat/cmd文件批量修改文件后缀名
    cv::Mat用法
    VS配置opencv、cuda及调用yolo动态链接库
    VS之 32 or 64
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3220241.html
Copyright © 2020-2023  润新知