编程珠玑 一维向量左旋转
2010-12-03 01:17
246 查看
今天看了编程珠玑上面的一道题目,书本11页第二章算法,感觉很有趣,特别是第三个实现的算法,非常巧妙,解决这个问题有三个算法,第一个也是最容易想到需要额外的分配i个空间,第二种算法我还是不怎么理解,没实现,第三种算法最精彩,也是最容易实现,深刻体会到简洁就是美的自然法则.
算法一实现:
算法二实现:
算法一实现:
string Reverse(string &s, int n) { int i,j; string temp; temp=s.substr(0,n); for(i=n,j=0;i!=s.size();i++,j++) s[j]=s[i]; s=s.substr(0,(s.length()-n)); s=s+temp; return s; }
算法二实现:
string Reverse(string &s, int n) { string::iterator i=s.begin()+n; reverse(s.begin(),i); reverse(i,s.end()); reverse(s.begin(),s.end()); return s; }
相关文章推荐
- 《编程珠玑(第2版)》笔记——将一个n元一维向量向左旋转i个位置(第2章)
- 编程珠玑第二章问题B: n元一维向量旋转问题之java实现
- 编程珠玑2章B问题--n元一维向量向左旋转i个位置
- 编程珠玑(1):将一个n元一维向量向左旋转i个位置。例如当n=8且i=3时,向量abcdefgh 旋转为defghabc
- 《编程珠玑(第2版)》笔记——将一个n元一维向量向左旋转i个位置(第2章)
- 《编程珠玑(第2版)》笔记——将一个n元一维向量向左旋转i个位置(第2章)
- 《编程珠玑》2.3 将一个n元一维向量左旋转i个位置
- 《编程珠玑(第2版)》笔记——将一个n元一维向量向左旋转i个位置(第2章)
- 一维向量旋转算法 编程珠玑 第二章
- 《编程珠玑》中向量旋转“杂技法”
- 一维向量旋转算法
- 编程珠玑第二章习题—向量的旋转
- C++实现一维向量旋转算法
- 一维向量旋转算法
- “《编程珠玑》(第2版)第2章”:B题(向量旋转)
- 将一个n元一维向量向左旋转i个位置。例如,当n = 8且i = 3时,向量abcdefgh旋转为defghabc
- 一维向量旋转算法
- n 元一维向量旋转问题(编程珠机) 第二章问题B
- n元一维向量旋转问题
- 《编程珠玑》问题的C实现——2:向量旋转