无重复字符的最大子串

题目

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

代码

code

   int n = s.length(), ans = 0;
        Map<Character, Integer> map = new HashMap<>();
        for (int end = 0, start = 0; end < n; end++) {
            char alpha = s.charAt(end);
            if (map.containsKey(alpha)) {
                start = Math.max(map.get(alpha), start);
            }
            ans = Math.max(ans, end - start + 1);
            map.put(s.charAt(end), end + 1);
        }
        return ans;

反转字符串中的单词

题目

给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

代码

code

class Solution {
   public static String reverseWords(String s) {
        char [] chs = s.toCharArray();
        int left = 0 ;
        int right = 0;
        for (int i = 0 ; i < chs.length ; i++){
            if (chs[i] == ' '){
                reverse(chs,left,right-1);
                left = i + 1;
                right = i + 1;
            }else{
                right++;
            }
        }
        reverse(chs,left,s.length()-1);
        return new String(chs);
    }
    public static void reverse(char [] chs,int left,int right){
        while (left<right){
            char temp = chs[left];
            chs[left] = chs[right];
            chs[right] = temp;
            left++;
            right--;
        }
    }
}

END

有问题请联系feinan6666@outlook.com

本文作者:
文章标题:2022-3-4~2022-3-5 力扣刷题记录
本文地址:https://home.cnboy.top/83.html
版权说明:若无注明,本文皆神码人の世界原创,转载请保留文章出处。
最后修改:2022 年 03 月 05 日 11 : 13 PM
如果觉得我的文章对你有用,请随意赞赏