0
点赞
收藏
分享

微信扫一扫

【LeeCode】557. 反转字符串中的单词 III

JamFF 2023-03-23 阅读 69

【题目描述】

给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。


【示例】

【LeeCode】557. 反转字符串中的单词 III_i++


【代码】admin

package com.company;
// 2023-03-23

import java.util.*;

class Solution {
    public String reverseWords(String s) {
        String[] split = s.split("\\s+");
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < split.length; i++){
            sb.append(new StringBuilder(split[i]).reverse()).append(" ");
        }
        // System.out.println(sb.toString().trim());
        return sb.toString().trim();
    }
}


public class Test {
    public static void main(String[] args) {
        new Solution().reverseWords("Let's take LeetCode contest"); // 输出:"s'teL ekat edoCteeL tsetnoc"
        new Solution().reverseWords("God Ding"); // 输出:"doG gniD"
    }
}


【代码】leecode

package com.company;
// 2023-03-23
import java.util.*;

class Solution {
    public String reverseWords(String s) {
        StringBuilder sb = new StringBuilder();
        int len = s.length();
        int i = 0;

        while (i < len){
            int left = i;

            while (i < len && s.charAt(i) != ' '){
                i++;
            }

            for (int j = left; j < i; j++){
                sb.append(s.charAt(left + i - 1 - j));
            }

            if (i < len && s.charAt(i) == ' '){
                i++;
                sb.append(" ");
            }
        }
        System.out.println(sb.toString());
        return sb.toString();
    }
}


public class Test {
    public static void main(String[] args) {
        new Solution().reverseWords("Let's take LeetCode contest"); // 输出:"s'teL ekat edoCteeL tsetnoc"
        new Solution().reverseWords("God Ding"); // 输出:"doG gniD"
    }
}

举报

相关推荐

0 条评论