python编程题-句子的逆序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python编程题-句子的逆序相关的知识,希望对你有一定的参考价值。

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


给定一个原字符串A和他的长度,请返回逆序后的字符串。


测试样例:

"dog loves pig",13

返回:"pig loves dog"


python实现

class Reverse:
    def reverseSentence(self, A, n):
        # write code here
        Alist = list(A)
        Alist.append(‘ ‘)
        res = []
        tmpstr = ""
        for i in xrange(len(Alist)):
            if Alist[i]!=‘ ‘:               #不是空格,字符串累加
                tmpstr = tmpstr + Alist[i]
            else:
                if Alist[i]==‘ ‘:           #是空格,将字符串放入list
                    res.append(tmpstr)
                    tmpstr = ""
        res.reverse()                       #整体反转
        return ‘ ‘.join(res)


def main():
    A="dog loves pig"
    t = Reverse()
    print t.reverseSentence(A, len(A))



if __name__ == "__main__":
    main()


C++实现

class Reverse {
public:
    string reverseSentence(string A, int n) {
        // write code here
        vector<string> sv(1);
        int tag = 0;
        for (int i = 0; i < A.length(); ++i)
        {
            if (A[i] == ‘ ‘)
            {
                tag++;
                sv.resize(tag+1);
                continue;
            }
            sv[tag] = sv[tag] + A[i];
 
        }
        reverse(sv.begin(),sv.end());
        A.clear();
        for (int i = 0; i < sv.size();i++)
        {
            //cout << sv[i] << " ";
            if (i != sv.size()-1)
                A = A + sv[i] + " ";
            else
                A = A + sv[i];
        }
        return A;
    }
};


本文出自 “hello world” 博客,请务必保留此出处http://237085.blog.51cto.com/227085/1962054

以上是关于python编程题-句子的逆序的主要内容,如果未能解决你的问题,请参考以下文章

华为python机试题目:计算字符个数简单错误记录简单密码进制转换句子逆序密码验证合格程序

python编程题 提取首字符?

初学python100例 逆序输出列表 少儿编程实例讲解

C++编程问题?输入一个英语句子,输出其中最长的单词,并输出次单词的位置。

程序员面试50题—翻转句子中单词的顺序[算法]

使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化