请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

交作业啦~!

leetcode 125. 验证回文串

    public boolean isPalindrome(String s) {
        if (s == null || s.length() < 2) {
            return true;
        }
        char[] chs = s.toCharArray();
        int l = 0, r = s.length() - 1;
        while (l < r) {
            // 使得 l 和 r 指向的字符是 数字或者字母
            while (l < r && !Character.isLetterOrDigit(chs[l])) l++;
            while (l < r && !Character.isLetterOrDigit(chs[r])) r--;
            if (l < r) {
                // 当程序运行到此处, l 和 r 指向的字符一定是 数字或者字母
                // 转换为小写再比较相等性
                if (Character.toLowerCase(chs[l]) != Character.toLowerCase(chs[r])) {
                    return false;
                }
                l++;
                r--;
            }
        }
        return true;
    }

leetcode 344. 反转字符串

    public void reverseString(char[] s) {
        if(s == null || s.length < 2)
            return;
        int l = 0, r = s.length - 1;
        while(l < r) {
            s[l] ^= s[r];
            s[r] ^= s[l];
            s[l++] ^= s[r--];
        }
    }

leetcode 345. 反转字符串中的元音字母

public String reverseVowels(String s) {
        if (s == null || s.length() < 2)
            return s;
        char[] chs = s.toCharArray();
        int l = 0, r = chs.length - 1;
        while (l < r) {
            // l 和 r 指向元音字母时停止
            while (l < r && !isVowel(chs[l])) l++;
            while (l < r && !isVowel(chs[r])) r--;
            if (l < r) {
                // 交换元音字母
                chs[l] ^= chs[r];
                chs[r] ^= chs[l];
                chs[l] ^= chs[r];
                l++;
                r--;
            }
        }

        return String.valueOf(chs);
    }

    public boolean isVowel(char letter) {
        letter = Character.toLowerCase(letter);
        if (letter == 'a' ||
                letter == 'e' ||
                letter == 'i' ||
                letter == 'o' ||
                letter == 'u') {
            return true;
        }
        return false;
    }

leetcode 11. 盛最多水的容器

public int maxArea(int[] H) {
        if(H == null || H.length < 2) {
            return 0;
        }
        int maxCap = 0;
        int i = 0, j = H.length - 1;
        // H[i...j] 区间查找 maxCap, H[i...j] 至少存在 2 个元素
        while(i < j) {
            // 计算当前区间的容积
            int cap = Math.min(H[i],H[j]) * (j - i);
            // 更新 maxCap
            maxCap = Math.max(maxCap, cap);

            // 更新较低的边界
            if(H[i] < H[j]) {
                i++;
            } else if(H[i] > H[j]) {
                j--;
            } else {
                i++;
                j--;
            }
        }
        return maxCap;
    }

正在回答

1回答

赞!继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕斯902xzxc_das #1
    bobo 老师在国外嘛? 凌晨3点还在答疑,tql👍
    回复 有任何疑惑可以回复我~ 2021-11-17 08:14:24
  • liuyubobobo 回复 提问者 慕斯902xzxc_das #2
    是哒,我在国外,所以有时差啦:)
    回复 有任何疑惑可以回复我~ 2021-11-17 10:47:48
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信