[淘宝]逆置一个字符串
今天早上面试淘宝,主要考察了两个算法。这个是第二个:逆置一个String类型的字符串。
?我想了两个思路:
(1) 创建一个临时字符串temp, 循环temp += str.charAt(leng--);
public AbstractStringBuilder reverse() {boolean hasSurrogate = false;int n = count - 1;for (int j = (n-1) >> 1; j >= 0; --j) { char temp = value[j]; char temp2 = value[n - j]; if (!hasSurrogate) {hasSurrogate = (temp >= Character.MIN_SURROGATE && temp <= Character.MAX_SURROGATE) || (temp2 >= Character.MIN_SURROGATE && temp2 <= Character.MAX_SURROGATE); } value[j] = temp2; value[n - j] = temp;}if (hasSurrogate) { // Reverse back all valid surrogate pairs for (int i = 0; i < count - 1; i++) {char c2 = value[i];if (Character.isLowSurrogate(c2)) { char c1 = value[i + 1]; if (Character.isHighSurrogate(c1)) {value[i++] = c1;value[i] = c2; }} }}return this; }
?
?
唉 可惜 淘宝一面就挂掉了。