LeetCode寒假刷题 Day17


前言

今天是寒假LeetCode刷题打卡的第十七天,也是本次跟随DataWhale组队学习刷题的最后一天,希望我的这一系列刷题博文帮助到了大家,若有疑问,可以随时私信Call我!

一、344. 反转字符串

1. 题目描述

344. 反转字符串

2. 代码实现

class Solution {
    public void reverseString(char[] s) {
        int j;
        int length=s.length;
        for(int i=0;i<length/2;++i)
        {
            j=length-1-i;
            //用位运算的方法实现两个数据的交换
            s[i]=(char)(s[i]^s[j]);
            s[j]=(char)(s[i]^s[j]);
            s[i]=(char)(s[i]^s[j]);
        }
    }
}

二、557. 反转字符串中的单词 III

1. 题目描述

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

2. 代码实现

class Solution {
    public String reverseWords(String s) {
        int length=s.length();
        StringBuffer res=new StringBuffer();
        int pre=0;
        int  j,k,judge;
        char temp;
        for(int i=0;i<s.length();++i)
        {
            res.append(s.charAt(i));
            if(s.charAt(i)==' '||res.length()==length)
            {
                judge=(i-pre)/2+pre;
                if(res.length()==length)
                    judge=(i+1-pre)/2+pre;
                for(j=pre;j<judge;++j)
                {
                    k=i-1-j+pre;
                    if(res.length()==length)
                        ++k;
                    temp=res.charAt(j);
                    res.setCharAt(j,res.charAt(k));
                    res.setCharAt(k,temp);
                }
                pre=i+1;
            }
        }
        return res.toString();
    }
}

注:记录每一个空格的位置,遇到空格时,对本空格和上一个空格之间的内容(即单词)进行反转。由于java中String类型的字符串不可更改,因此采用到了StringBuffer。

总结

以上就是今天 LeetCode寒假刷题 Day17 做的本次组队刷题的最后两道题。虽然课程已经结束,但是我也不会荒废下去, 学习新的知识,空闲时候也还是会继续刷题。若有任何疑问,欢迎私信或评论区留言鸭!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值