zoukankan      html  css  js  c++  java
  • 华为机试之句子逆序

    题目要求:

    将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
    所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符


    接口说明

    /**
     * 反转句子
     * 
     * @param sentence 原句子
     * @return 反转后的句子
     */
    public String reverse(String sentence);

    输入描述:

    将一个英文语句以单词为单位逆序排放。

    输出描述:

    得到逆序的句子

    示例1

    输入

    I am a boy
    

    输出boy a am I
    我的解决方案:

    #include<iostream>
    #include<string>
    #include<vector>
    using namespace std;

    void solve(string str, vector<string> &words)
    {
     string w;
     int i = 0;
     int j = str.find(" ");
     while (j != -1)
     {
      w = str.substr(i, j - i);
      words.push_back(w);
      i = j + 1;
      j = str.find(" ", i);
     }
     if (i<str.length() - 1)
     {
      w = str.substr(i);
      words.push_back(w);
     }
    }

    int main()
    {
     //string s="I am a boy";
     string s;
     getline(cin, s);
     vector<string> words;
     //cout<<"句子中的单词分别为:"<<endl;
     solve(s, words);
     vector<string>::reverse_iterator rit;
     for (rit = words.rbegin(); rit != words.rend()-1; ++rit)
     {
      cout << *rit << ' ';
     }
     cout << *words.begin();
     cout << endl;
     return 0;

    }

  • 相关阅读:
    Java集合 使用Map
    Java集合 编写equals方法
    yiyou本地安装出现版本问题
    网站地图制作
    SEO小爬虫工具文章排版
    知名企业招聘技术员题库
    测试上网速度
    邮件传输协议软件
    JSONP跨域问题
    织梦搬家
  • 原文地址:https://www.cnblogs.com/wangzongze/p/8748132.html
Copyright © 2011-2022 走看看