6:Z字形变换
| 难度中等 |
| 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 |
| 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: |
| L C I R E T O E S I I G E D H N |
代码
char * convert(char * s, int numRows){
int n = strlen(s);
char *res = NULL;
int k = 0;
if (numRows == 1)
return s;
res = (char*)malloc(sizeof(char) * (n + 1));
for (int i = 0; i < numRows; i++) {
for (int j = 0; j < n; j++) {
if (j % (2 * numRows - 2) == i ||
j % (2 * numRows - 2) == (2 * numRows - 2 - i)) {
res[k++] = s[j];
}
}
}
res[k] = '\0';
return res;
}
7:整数反转
| 难度简单 |
| 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 |
| 示例 1: |
| 输入: 123 输出: 321 |
| 示例 2: |
| 输入: -123 输出: -321 |
| 示例 3: |
| 输入: 120 输出: 21 |
代码
int reverse(int x)
{
int pop;
long sum = 0; //long类型也是2^-31到2^31-1.
while ( x != 0) {
pop = x % 10;
sum = sum * 10 + pop;
x = x / 10; //简单的反转整数
}
if ((int)sum != sum) // 将得到的long类型的sum和int类型性的sum进行比较若不同则溢出返回0
return 0;
return (int)sum;
}
这篇博客探讨了两种编程问题:一是如何将字符串按照Z字形排列,二是如何实现整数的反转。在Z字形变换中,字符串根据指定行数进行上下左右的排列;而在整数反转中,博客提供了将32位有符号整数翻转的算法,同时处理了溢出的情况。这些问题涉及到字符串处理和数值操作,是编程基础的重要组成部分。
277

被折叠的 条评论
为什么被折叠?



