桑海

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Zigzag:即循环对角线结构(

0       8       16      
1     7 9     15 17      
2   6   10   14   18      
3 5     11 13     19      
4       12       20      

 

向下循环:nRows

斜角线循环:nRows-2(减去首尾两个端点)

重复

...

string convert(string s, int nRows){
	if(nRows == 1) return s;
	string res[nRows];
	int i = 0, j, gap = nRows-2;
	while(i < s.size()){
		for(j = 0; i < s.size() && j < nRows; ++j) res[j] += s[i++];
		for(j = gap; i < s.size() && j > 0; --j) res[j] += s[i++];
	}
	string str = "";
	for(i = 0; i < nRows; ++i)
		str += res[i];
	return str;
}

  

 

posted on 2014-03-29 14:54  桑海  阅读(13670)  评论(3编辑  收藏  举报