当前位置: 首页 > news >正文

【leetcode hot 100 763】划分字母区间

解法一:用map记录<字母,字母出现的次数>,循环取出value-1,每次判断已经取出的字母(Set记录)是否还在后面存在(value>1),若存在继续循环,若不存在开启下一循环(再找新的一串字母)

import java.util.*;

/**
 * @author longyy
 * @version 1.0
 */
class Solution79 {
    public List<Integer> partitionLabels(String s) {
        List<Integer> result = new ArrayList<>();
        if (s == null || s.length() == 0) return result;
        int n = s.length();
        Map<Character, Integer> has = new HashMap<>();
        for (int i = 0; i < n; i++) {
            if(has.containsKey(s.charAt(i))) {
                has.put(s.charAt(i), has.get(s.charAt(i))+1);
            }
            else {
                has.put(s.charAt(i), 1);
            }
        }

        int num =0;
        Set<Character> curr = new HashSet<>();
        int i=0;
        while(i<n) {
            curr.add(s.charAt(i));
            num++;
            has.put(s.charAt(i), has.get(s.charAt(i))-1);
            boolean isEnd = true;
            for(char c : curr) {
                if(has.get(c)>0){
                    // 后面还有,还没取完
                    isEnd = false;
                    break;
                }
            }
            if(isEnd){
                result.add(num);
                curr.clear();
                num=0;
            }
            i++;
        }
        return result;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        Solution79 sol = new Solution79();
        System.out.println(sol.partitionLabels(s));
    }
}

注意:

  • 加入list时,不能result.add(set.size()),这个size是不重复的字母个数,要result.add(num)

相关文章:

  • 【愚公系列】《高效使用DeepSeek》058-选题策划
  • real_time_camera_audio_display_with_animation
  • 华为OD机试2025A卷 - 正整数到excel编号之间的转换(Java Python JS C++ C )
  • 分布式微服务系统架构第97集:JVM底层原理
  • P1006 [NOIP 2008 提高组] 传纸条 题解
  • HTML5 浏览器兼容性:让旧浏览器也能拥抱 HTML5
  • 如何使用Audacity快速拆分整轨音频文件
  • 在 Ubuntu 下通过 Docker 部署 Misskey 服务器
  • 用AI来了解用户都在关注的品牌问题是什么?
  • linux 下du 和 ls-alh 的区别
  • 【JavaScript】十五、事件对象与环境对象
  • 跳跃游戏的最优解法——贪心算法的智慧与实践
  • 关于动态卷积
  • windows下GCC编译器使用FFTW预编译版共享库使用
  • 优秀的python可视化案例
  • Unity ViewportConstraint
  • 蓝桥杯 web 新鲜的蔬菜(css3)
  • javaweb自用笔记:Maven分模块设计与开发、Maven继承与聚合、Maven私服
  • 什么是数据
  • LogicFlow-前端流程图开发
  • 如何做一个自己的网站/网站建设多少钱
  • 企业如何选择网站/百度的官方网站
  • 网站开发设计知乎/全网自媒体平台大全
  • 网站打开慢 可以只换空间不换域名吗/最新实时新闻
  • wordpress 还原备份数据库/长沙seo推广优化
  • 城市之星福州网站建设/seo优化查询