题解 | #字符串变形#

字符串变形

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();
    }
}

全部评论

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务