当前位置:   article > 正文

C语言 | Leetcode C语言题解之第6题Z字形变换_z字形变换c语言leetcode

z字形变换c语言leetcode

题目:

题解:

  1. char * convert(char * s, int numRows){
  2. int n = strlen(s), r = numRows;
  3. if (r == 1 || r >= n) {
  4. return s;
  5. }
  6. int t = r * 2 - 2;
  7. char * ans = (char *)malloc(sizeof(char) * (n + 1));
  8. int pos = 0;
  9. for (int i = 0; i < r; ++i) { // 枚举矩阵的行
  10. for (int j = 0; j + i < n; j += t) { // 枚举每个周期的起始下标
  11. ans[pos++] = s[j + i]; // 当前周期的第一个字符
  12. if (0 < i && i < r - 1 && j + t - i < n) {
  13. ans[pos++] = s[j + t - i]; // 当前周期的第二个字符
  14. }
  15. }
  16. }
  17. ans[pos] = '\0';
  18. return ans;
  19. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/980410
推荐阅读
相关标签
  

闽ICP备14008679号