题解 | #字符串变形#

字符串变形

https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e

import java.util.*;

public class Solution {
    public String trans(String s, int n) {
        // write code here
        if(n == 0){
            return s;
        }

        // 大小写更替
        StringBuffer str = new StringBuffer();
        for(int i=0;i<n;i++){
            if(s.charAt(i) >= 'a' && s.charAt(i) <= 'z'){
                str.append((char)(s.charAt(i) - 'a' + 'A'));
            }else if(s.charAt(i) >= 'A' && s.charAt(i) <= 'Z'){
                str.append((char)(s.charAt(i) - 'A' + 'a'));
            }else{
                str.append(s.charAt(i));
            }
        }

        // 整体颠倒
        str = str.reverse();

        // 以空格为单位部分颠倒
        for(int i=0;i<n;i++){
            int j = i;
            while(j < n && str.charAt(j) != ' '){
                j++;
            }
            // while结束相当于在空格处,我们对i-j-1进行颠倒
            String temp = str.substring(i,j);
            StringBuffer buffer = new StringBuffer(temp);
            temp = buffer.reverse().toString();
            str.replace(i,j,temp);
            i = j;
        }
        

        return str.toString();
    }
}

全部评论

相关推荐

把球:这个听过,你加了就会发现是字节的hr
点赞 评论 收藏
分享
冲芭芭拉鸭:你这图还挺新,偷了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务