数据结构和算法经典100题-第10题
2015-05-04 19:26
309 查看
第10 题题目如下
翻转句子中单词的顺序。
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。
题目分析:
这是一个字符串处理问题,由于是单词和句子的反转,可以考虑从输入流末尾遍历一直遍历输入流开头,在遍历到空格之后,将单词反转绑定到输出流上(如何将单词反转呢,可以使用两个游标,分别标识出单词的开始和单词的结束。)。这样是一个时间复杂度和空间复杂度都是O(n)的遍历。
好的,基本思路就是这样,不废话上代码:
写个简单的测试程序,做一个单元测试:
打印输出:
test10
Output:student! a am I hello,
Program ended with exit code:0
ok,这个题目解决了。
ps:最近因为一些家事,更新的慢了,接下来会恢复正常更新。每天至少更新一题这样。
路漫漫其修远兮,吾将上下而…
翻转句子中单词的顺序。
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。
题目分析:
这是一个字符串处理问题,由于是单词和句子的反转,可以考虑从输入流末尾遍历一直遍历输入流开头,在遍历到空格之后,将单词反转绑定到输出流上(如何将单词反转呢,可以使用两个游标,分别标识出单词的开始和单词的结束。)。这样是一个时间复杂度和空间复杂度都是O(n)的遍历。
好的,基本思路就是这样,不废话上代码:
// // 10th.cpp // 100-alg-tests // // Created by bobkentt on 15-4-23. // Copyright (c) 2015ๅนด kedong. All rights reserved. // #include "10th.h" #include <iostream> #include <string> using namespace std; bool reverseStr(std::string& input, std::string& output) { unsigned int inputStrLen = (unsigned int)input.size(); if (0 == inputStrLen) { cout<<"Input string is NULL!"<<endl; return false; } int end = inputStrLen-1; int start = inputStrLen-1; for (int i = inputStrLen - 1; i >= 0; i--) { if (' ' == input[i] || i == 0) { if (i != 0) { start++; } for (int j = 0; j <= end - start; j++) { output+=input[start+j]; } if (i != 0) { output+=' '; } end = i - 1; start = end; } else { start--; } } return true; }
写个简单的测试程序,做一个单元测试:
int test_10() { string input("hello, I am a student!"); string output; cout<<"test10"<<endl; if (!reverseStr(input, output)) { return -1; } cout<<"Output:"<<output<<endl; return 0; }
打印输出:
test10
Output:student! a am I hello,
Program ended with exit code:0
ok,这个题目解决了。
ps:最近因为一些家事,更新的慢了,接下来会恢复正常更新。每天至少更新一题这样。
路漫漫其修远兮,吾将上下而…
相关文章推荐
- 数据结构和算法经典100题-第7题
- 数据结构和算法经典100题-第1题
- 数据结构和算法经典100题-第19题
- 数据结构和算法经典100题-第22题
- 数据结构和算法经典100题-第29题
- 数据结构和算法经典100题-第15题
- 数据结构和算法经典100题-第32题
- 数据结构和算法经典100题-第14题
- 数据结构和算法经典100题-第2题
- 数据结构和算法经典100题-第11题
- 数据结构和算法经典100题-第13题
- 数据结构和算法经典100题-17题
- 数据结构和算法经典100题-第3题
- 数据结构和算法经典100题-第18题
- 数据结构和算法经典100题-第26题
- 数据结构和算法经典100题-第4题
- 数据结构和算法经典100题-第5题
- 数据结构和算法经典100题-第25题
- 数据结构和算法经典100题-第20题
- 数据结构和算法经典100题-第16题