您的位置:首页 > 编程语言 > Python开发

python编程题-句子的逆序

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

给定一个原字符串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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 编程练习