• LeetCode 1525. 字符串的好分割数目


    题目链接

    1525. 字符串的好分割数目

    题目思路

    使用两个数组,记录在第i个位置分割字符串的时候,其[0,i-1]之间出现字符串的种数和[i, s.length()-1]之间出现的字符串种数。然后再使用一次遍历去检查如果分割第i个位置,其左右的大小是否相等即可。
    由于题目输入全部都是小写字符,所以直接开一个boolean数组存字符出现的情况即可。

    代码实现

    class Solution {
        public int numSplits(String s) {
            if(s.length() == 0){
                return 0;
            }
            if(s.length() == 1){
                return 1;
            }
            boolean[] visited = new boolean[26];
            int[] left = new int[s.length()];
            char[] str = s.toCharArray();
            visited[str[0] - 'a'] = true;
            int count = 1;
            for(int i = 1; i < str.length; i++){
                left[i] = count;
                if(!visited[str[i] - 'a']){
                    visited[str[i] - 'a'] = true;
                    count++;
                }
            }
            int[] right = new int[s.length()];
            visited = new boolean[26];
            count = 0;
            for(int i = str.length - 1; i >= 0; i--){
                if(!visited[str[i] - 'a']){
                    visited[str[i] - 'a'] = true;
                    count++;
                }
                right[i] = count;
            }
            int res = 0;
            for(int i = 1; i < str.length; i++){
                if(left[i] == right[i]){
                    res++;
                }
            }
            return res;
        }
    }
    
  • 相关阅读:
    #2019120500009-LG 数据结构 优先队列(1)
    #2019120500008-LG 数据结构 栈(1)
    2019D1T1 格雷码
    #2019120500006-LG 迷宫
    #2019120500004-LG 单词方阵
    #2019110700005
    hdu 1827强连通分量
    HDU 5691 状压dp
    HDU 4734--基础数位dp(递推)
    HDU 4638--莫队算法
  • 原文地址:https://www.cnblogs.com/ZJPaang/p/13745228.html
Copyright © 2020-2023  润新知