時間複雜度:o(n)
空間複雜度:o(1)
class solution
reverse(s.begin(), s.end());
//去除首尾的空格
int k = 0;
while(k < s.size() && s[k] == ' ') k++;
int j = s.size() - 1;
while(j >= 0 && s[j] == ' ') j--;
return s.substr(k, j - k + 1);
}};
自己實現的版本
class solution
cout << j << endl;
}j = s.size() - 1;
while(j >= 0 && s[j] == ' ') j--;
return s.substr(0, j + 1);
}void reverse(string& s)
}};
時間複雜度:o(n)
空間複雜度:o(n)
leetcode增加了難度,多了一些特殊異常情況
class solution
}reverse_str(word);
ans += word;
//逆置整個字串
reverse_str(ans);
return ans;
}void reverse_str(string &word)
};
時間複雜度:o(n)
空間複雜度:o(1)
借助substr函式實現
class solution
res.erase(res.find_last_not_of(" ") + 1);
return res; //返回結果
}};
58 I 翻轉單詞順序
輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...
劍指 Offer 58 I 翻轉單詞順序
題目 leetcode上面這道題與書上有些許不同,leetcode還考慮句子首尾和末尾有空格的情況,以及單詞之間存在多個空格。思路1 class solution return res.tostring trim 思路2 先剔除字串首尾的空格,然後利用split 函式,根據空格劃分,返回乙個stri...
劍指 Offer 58 I 翻轉單詞順序
輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...