leetcode算法題--Z字型變換

題目鏈接:https://leetcode-cn.com/problems/zigzag-conversion/
題解:用一個二維數組來存儲這個字符串,就是按照題目的方式存儲,然後按行遍歷即可。
代碼:

string convert(string s, int numRows) {
	int length = s.length();
	vector<vector<char>> vec(numRows, vector<char>(length, 0));
	int pos = 0, i = 0, j = 0;
	while (pos!=length){
		for (i; i < numRows; ++i){
			if (pos == length)
				break;
			vec[i][j] = s[pos];
			pos++;
		}
		i = (i - 2 > 0) ? i - 2 : 0;
		j++;
		while (i>0){
			if (pos == length)
				break;
			vec[i][j] = s[pos];
			pos++;
			i--;
			j++;
		}
	}
	string result = "";
	for (int i = 0; i < numRows; ++i){
		for (int j = 0; j < length; ++j){
			if (vec[i][j] != 0){
				result += vec[i][j];
			}
		}
	}
	return result;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章