006ZigZag Conversion (C)
来源:互联网 发布:手机千牛怎么进淘宝客 编辑:程序博客网 时间:2024/05/21 17:09
P A H NA P L S I I GY I RAnd 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"
.
做此题我的想法很简单,并没有去列出其中的规律,既然是之字型,那就用一个二维数组实现吧,就写了下面的程序,最后runtime竟然达到492ms
给了这么一句:you are here! your runtime beats 0.00% of c submissions(无语了,难道没有像我一样这样想的吗?)
char* convert(char* s, int numRows) { char zig[numRows][strlen(s)]; int k,i,j,q; if(s[0]=='\0'||numRows==1){ return s; } for(i=0;i<numRows;i++){ for(j=0;j<strlen(s);j++){ zig[i][j]='\0'; } } i=j=k=q=0; while(s[k]!='\0'){ if(i<numRows){ zig[i++][j]=s[k++]; }else{ i--; while(s[k]!=0&&i>0){ zig[--i][++j]=s[k++]; } i++; } } for(i=0;i<numRows;i++){ for(k=0;k<=j;k++){ if(zig[i][k]!='\0'){ s[q++]=zig[i][k]; } } } return s;}
在网上搜了一下,发现确实应该找规律,借用一张图,便于理解
0 8 16 1 79 1517 2 6 10 14 18 35 1113 19 4 12 20nRows=5
需要按行输出每一个字符先看1,5,9,...列 (0,1,2,3,4),(8,9,10,11,12),(16,17,18,19,20)
可以发现对应的行的变化相同为8,这样这些字符就确定了
但是除了首行和末行,中间的还有字符
第二行中间字符距前一个字符间隔为6....
第三行是4...
.....
附上此方法的程序(转载)
http://blog.csdn.net/ljiabin/article/details/40477429
0 0
- 006ZigZag Conversion (C)
- 【leetcode c++】ZigZag Conversion
- [LeetCode]ZigZag Conversion(C++)
- leetcode-006:ZigZag Conversion
- LeetCode 006 ZigZag Conversion
- LeetCode 006 ZigZag Conversion
- [LeetCode]-006-ZigZag Conversion
- 006ZigZag Conversion
- 006 ZigZag Conversion [Leetcode]
- 006 - ZigZag Conversion
- [LeetCode]006-ZigZag Conversion
- LeetCode 006 ZigZag Conversion
- leetcode ZigZag Conversion 006
- LeetCode 006 ZigZag Conversion
- leetcode_c++:ZigZag Conversion(006)
- leetcode-006 ZigZag Conversion
- leetcode 006 ZigZag Conversion
- LeetCode-006 ZigZag Conversion
- onActivityResult 不调用的问题
- 安卓pulltorefresh使用小结
- iOS_SpriteKit_03_精灵平移拖动
- arp a命令的通俗解释
- Android自动化测试课程大纲
- 006ZigZag Conversion (C)
- iOS将一个图片平均分成两部分
- (转)美团Android资源混淆保护实践
- ios私有api查询
- jquery源码分析——元素大小
- (转)美团Android自动化之旅—适配渠道包
- 华为机试——字符串合并处理
- PopupWindow学习之弹出方向(一)
- 002_JDK安装及环境变量配置