Re: [闲聊] 每日LeetCode

楼主: Rushia (みけねこ的鼻屎)   2022-09-22 10:40:56
557. Reverse Words in a String III
题目:
给定一个字串,返回这个字串以"空白分隔"的反转。
Example:
Input: s = "God Ding"
Output: "doG gniD"
思路:
1.遍历字串直到找到空白
2.若在i位置找到空白则把start到i-1位置的字串都反转,并纪录下个start的位置
3.遍历完字串后为了避免不含空白的测资需要再对start到s.lengh反转一次。
JavaCode:
class Solution {
public String reverseWords(String s) {
char[] res = s.toCharArray();
int start = 0;
for(int i = 0; i < s.length(); i++) {
if(res[i] == ' ') {
reverse(res, start, i - 1);
start = i + 1;
}
}
reverse(res, start, s.length() - 1);
return new String(res);
}
private void reverse(char[] str,int start,int end){
while (start < end){
char temp = str[start];
str[start++] = str[end];
str[end
作者: Ericz7000 (Ericz7000nolan)   2022-09-22 10:42:00
好认真 加油
作者: DreaMaker167 (dreamaker)   2022-09-22 10:45:00
你很棒
作者: JerryChungYC (JerryChung)   2022-09-22 10:49:00
第3点是什么意思ㄚ 再反转一次不会变Ding God吗
作者: p54661205 (APK)   2022-09-22 10:52:00
前半段转一次 后半段也转一次
作者: JerryChungYC (JerryChung)   2022-09-22 10:55:00
喔喔 只有转后才会更新start

Links booklink

Contact Us: admin [ a t ] ucptt.com