题解 | #单词倒排#

单词倒排

http://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836

#include <algorithm>
#include <string>
#include <vector>
#include <cmath>
//对字符串中的所有单词进行倒排。说明:
//1、构成单词的字符只有26个大写或小写英文字母;
//2、非构成单词的字符均视为单词间隔符;
//3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
//4、每个单词最长20个字母;
using namespace std;
int main()
{
    string str,ans,out0;
    //getline(cin,str);
    while(cin>>str)
    {
//         int len1 = str.length();
//         for(int j=0;j<len1;j++)
//         {
//             if(!isalpha(str[j]))
//             {
//                 str[j] = ' ';
//             }
//         }
        ans = str+" "+ans; 
        //reverse(str.begin(),str.end());
        int len = ans.length();
        for(int i=0; i<len; i++)
        {
            if(isalpha(ans[i]))
            {
                ans[i] = ans[i];
            }
            else{
                if(ans[i] != ' ' && i!= 0)
                {
                    ans[i] = ' ';
                }
            }
            
//             if(isalpha(ans[i]) || ans[i] == ' ')
//                 out0 = ans[i];
        }
    }
    cout<<ans<<endl;
    return 0;
}
//用例输入
//$bo*y gi!r#l
//预期输出
//l r gi y bo
//实际输出
//gi r l  bo y 
全部评论

相关推荐

10-07 20:48
门头沟学院 Java
不敢追175女神:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务