码迷,mamicode.com
首页 > 编程语言 > 详细

python编程题-句子的逆序

时间:2017-09-02 00:12:27      阅读:236      评论:0      收藏:0      [点我收藏+]

标签: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编程练习

原文地址:http://237085.blog.51cto.com/227085/1962054

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!