zoukankan      html  css  js  c++  java
  • 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;
        }
    }
    
  • 相关阅读:
    java的原子类 AtomicInteger 实现原理是什么?
    Tomcat性能调优
    JVM性能调优
    vue下载和上传excle数据文件,解析excel文件数据并存在数据库中
    07----popo up 弹窗
    06----fiter
    05 ---批量操作
    04
    stark组件03
    stack组件03
  • 原文地址:https://www.cnblogs.com/ZJPaang/p/13745228.html
Copyright © 2011-2022 走看看