O(1)空间复杂度、O(n)时间复杂度,要求将一个字符串按单词逆转,比如 This is a sentence,变成sentence a is This
public static void reverse(char[] str, int begin, int end) {
while (begin < end) {
char tmp = str[begin];
str[begin++] = str[end];
str[end--] = tmp;
}
}
public static void reverse(char[] str) {
if (null == str || str.length == 0) {
return;
}
reverse(str, 0, str.length - 1);
int offset = 0;
for (int i = 0; i < str.length; i++) {
if (str[i] == ' ') {
reverse(str, offset, i - 1);
offset = i + 1;
}
}
reverse(str, offset, str.length - 1);
}
本文介绍了一种字符串处理算法,该算法能在O(1)的空间复杂度和O(n)的时间复杂度下实现字符串中单词的逆序排列。例如,输入字符串Thisisasentence会变为sentenceaisThis。文章提供了具体的Java代码实现。
670

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



