第七周算法分析与设计:ZigZag Conversion
来源:互联网 发布:阿里云ip段 编辑:程序博客网 时间:2024/06/09 23:07
算法描述:
The string
"PAYPALISHIRING"
is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)
P A H N
A P L S I I G
Y I R
And then read line by line:"PAHNAPLSIIGYIR"
Write the code that will take a string and make this conversion given a number of rows:
string convert(string text, int nRows);
convert("PAYPALISHIRING", 3)
should return"PAHNAPLSIIGYIR"
.
题目来自此处
解决方案:
我的解决思路是(贼麻烦):二维char
数组,以'Z'
型的方式存储字符(一开始字符数组以'0'
填充),然后最后通过检测不是'0'
的字符存储进要输出字符串中。
string convert(string s, int numRows) { if (numRows == 1) return s; if (s == "") return ""; char **ch = new char*[numRows]; int i, j, k = 0; for (i = 0; i<numRows; i++){ ch[i] = new char[s.length() + 1]; } for (i = 0; i<numRows; i++){ for (j = 0; j <= s.length(); j++){ ch[i][j] = '0'; } } int count = s.length(); i = 0; j = 0; while (k<count){ if (i == 0){ if (j != 0) i++; while (i<numRows && k<count){ ch[i][j] = s[k]; i++; k++; } } else if (i >= numRows){ ch[numRows - 2][j + 1] = s[k]; i = numRows - 2; j++; k++; } else{ i--; j++; ch[i][j] = s[k]; k++; } } string rs = ""; for (i = 0; i<numRows; i++){ for (j = 0; j <= s.length(); j++){ if(ch[i][j]!='0'){ rs += ch[i][j]; } } } return rs; }
这么麻烦的写法时间和空间复杂度都是
0 0
- 第七周算法分析与设计:ZigZag Conversion
- 算法分析与设计——LeetCode:6. ZigZag Conversion
- 算法设计与分析(6)-- ZigZag Conversion(难度:Medium)
- ZigZag Conversion(算法分析week4)
- 算法分析与设计第七周
- (算法分析Week10)ZigZag Conversion[Medium]
- .ZigZag Conversion题目分析
- ZigZag Conversion算法
- 算法分析与设计第七周:134. Gas Station
- 算法分析与设计课程作业第七周#1#2
- 算法设计与应用基础:第七周
- 算法设计与应用基础-第七周
- 计科《算法设计与分析》第七周作业1——背包问题
- 算法分析与设计丨第七周丨LeetCode(11)——Candy(Hard)
- 【算法分析与设计】【第七周】200 & 695. Number(Max Area) of Islands
- 第十七周(ZigZag Conversion)
- LeetCode算法题之ZigZag Conversion
- 算法学习笔记[LeetCode][ZigZag Conversion]
- linux下mysql的操作
- 互斥与同步
- 关于c++的迭代器
- linux /dev/console、/dev/tty和/dev/null的区别
- 从7个方面简单学习shell的正则表达式
- 第七周算法分析与设计:ZigZag Conversion
- vue中改变选中当前项的显示隐藏或者状态的方法
- 设置vim >> 移动4个空格
- 二叉树的各种遍历实现伪代码
- Java反射机制详解
- 一些关于操作excel的 library
- 基于Spring Security 的JSaaS应用的权限管理
- c语言宏定义总结
- echarts柱图小结(部分转载)