- ZigZag Conversion(6)
Example 2:
Input: s = “PAYPALISHIRING”, numRows = 4
Output: “PINALSIGYAHRPI”
Explanation:
P I N
A L S I G
Y A H R
P I
public String convert(String s, int numRows) {
if (numRows == 1) return s;
List<StringBuffer> list = new ArrayList<>();
for (int i = 0; i < Math.min(s.length(), numRows); i++) {
list.add(new StringBuffer());
}
int idx = 0;
boolean goingDown = false;
for (int i = 0; i < s.length(); i++) {
if (idx == 0 || idx == list.size() - 1) {
goingDown = !goingDown;
}
list.get(idx).append(s.charAt(i));
idx = goingDown? idx + 1: idx - 1;
}
StringBuffer res = new StringBuffer();
for (int i = 0; i < list.size(); i++) {
res.append(list.get(i));
}
return res.toString();
}
- Reverse Integer(7)
Input: -123
Output: -321
class Solution {
public int reverse(int x) {
int res = 0, tmp = 0;
while (x != 0) {
tmp = x % 10;
x /= 10;
if (res > Integer.MAX_VALUE / 10 || (res == Integer.MAX_VALUE &&
tmp > Integer.MAX_VALUE % 10))
return 0;
if (res < Integer.MIN_VALUE / 10 || (res == Integer.MIN_VALUE &&
tmp < Integer.MIN_VALUE % 10))
return 0;
res = res * 10 + tmp;
}
return res;
}
}
- 字符串转换整数 (atoi)(8)
public int myAtoi(String str) {
str = str.trim();
if (str == null || str.length() == 0) {
return 0;
}
long temp = 0;
int sum = 0;
int sign = 1;
char firstChar = str.charAt(0);
if (firstChar == '-') {
sign = -1;
} else if (firstChar != '+' && !(firstChar >= '0' && firstChar <= '9')) {
return 0;
} else if (firstChar == '+') {
} else {
sum += firstChar - 48;
}
if (str.length() == 1) {
return sum;
}
for (int i = 1; i < str.length(); i++) {
char ch = str.charAt(i);
if (!(ch >= '0' && ch <= '9')) {
break;
} else {
temp = (long)sum * 10;
sum *= 10;
sum += sign * (ch - 48);
temp += sign * (ch - 48);
if (temp >= Integer.MAX_VALUE) {
return Integer.MAX_VALUE;
} else if (temp <= Integer.MIN_VALUE) {
return Integer.MIN_VALUE;
}
/* false
if (sum < 0 && sign == 1) {
return Integer.MAX_VALUE;
} else if (sum > 0 && sign == -1) {
return Integer.MIN_VALUE;
}
*/
}
}
return sum;
}