美文网首页
问题:句子逆序

问题:句子逆序

作者: 熊白白 | 来源:发表于2017-07-06 11:51 被阅读13次

对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序。

给定一个原字符串A和他的长度,请返回逆序后的字符串。
这种问题没有涉及到高级的算法技术,或者巧妙的解题设计。实际上它的解法有很多种。其中一种是:

  1. 利用包含句子的字符串构建ostringstream
  2. 利用>>运算符把各个单词依次填入vector<string>里面
  3. 将vector逆序输出到string内

这种方法利用了ostringstream按照空格自动划分单词的特性。

如果只用浅层次的指针工具的话:

  1. 将整个字符串逆序
  2. 将每个单词逆序
void reverse(char*const P,char*const Q){
        char* p=P,*q=Q;
        while(p<q){ //这种指针两头动的情况,用不等于会出错
            char x=*p;
            *p=*q;
            *q=x;
            p++;
            q--;
        }
    }
    string reverseSentence(string A, int n) {
        if(A.empty())
            return A;
        char* a=&A[0];
        reverse(a,a+n-1);
        //两层循环指定单词的区间
        for(int i=0;i<n;++i){
            if(a[i]!=' '){
                int j;
                for(j=i+1;j<n;++j){ 
                    if(a[j]==' ')
                        break;
                }
                //要么a[j]==' '要么j==n越界
                reverse(a+i,a+j-1);
                i=j-1;//记住外面还有一个i++,下次循环开始的时候i==j
            }
                
        }
        return A;
    }

相关文章

  • 问题:句子逆序

    对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将...

  • HWOJ句子逆序

  • 算法(6)句子逆序

    描述将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”

  • python 句子的逆序

    对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将...

  • 试题5:句子逆序

    试题描述:将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所...

  • 【华为机试】句子逆序

    题目描述: 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”...

  • 入门算法 - 句子逆序输出

    内容同步于我的博客:https://blog.bigrats.net/archives/basic-alg-sen...

  • HJ13 句子逆序

    描述将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I” 所有单...

  • C入门6:数组入门

    0. 问题 输入5个数字,逆序打印出这5个数字。 输入50个数字,逆序打印出这50个数字。 输入n个数字,逆序打印...

  • 3_6句子逆序

    对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将...

网友评论

      本文标题:问题:句子逆序

      本文链接:https://www.haomeiwen.com/subject/uprhhxtx.html