【双指针+字符串】字符串变形


求解代码

java 复制代码
public String trans(String s, int n) {
        if (s == null || s.length() == 0) {
            return s;
        }
        char[] str = s.toCharArray();
        reverse(str, 0, str.length - 1);
        int i = 0, j = 0;
        while (i < str.length) {
            j = i;
            while (j < str.length && str[j] != ' ') {
                if (str[j] >= 'a' && str[j] <= 'z') {
                    str[j] = (char) (str[j] - 'a' + 'A');
                } else {
                    str[j] = (char) (str[j] - 'A' + 'a');
                }
                j++;
            }
            reverse(str, i, j - 1);
            i = j + 1;
        }
        return new String(str);
    }

    public void reverse(char[] arr, int start, int end) {
        int i = start;
        int j = end;
        while (i < j) {
            char c = arr[i];
            arr[i] = arr[j];
            arr[j] = c;
            i++;
            j--;
        }
    }

小贴士

代码思路大概是:

整体反转➡️单词遍历➡️大小写互换➕局部反转

相关推荐
程序员阿鹏2 分钟前
简单介绍一下软引用
java·开发语言·jvm·数据结构·后端
SL_staff14 分钟前
项目延期时如何用四类角色机制实现责任锚定?一线技术实践拆解
java·低代码·团队管理
wno70418 分钟前
Spring Security Session管理
java·后端·spring
吃饱了得干活19 分钟前
主键选择:从单机到分布式,一个被低估的性能决策
java·后端
haluhalu.24 分钟前
初识 Protobuf:微服务跨语言通信的一份契约
java·c语言·开发语言·c++·python
xcl092535 分钟前
宠物商城社交托运购物系统开发实战:从架构设计到完整实现指南
java·spring boot
没差c39 分钟前
RetrofitClient写接口、导包、配置、路径
java·spring boot·okhttp
JMchen1 小时前
实战案例:实现120fps流畅的渐变进度条
android·kotlin·canvas
SL_staff1 小时前
MQTT Topic权限越界:JVS-IOT中系统Topic与自定义Topic的权责边界与验证实践
java·物联网·全栈
敲代码的瓦龙1 小时前
Jetpack?DataBinding!!!
android·java·开发语言·mysql·android-studio