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

编程珠玑 一维向量左旋转

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