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

【Hot100】LeetCode—763. 划分字母区间

目录

  • 题目
  • 1- 思路
  • 2- 实现
    • ⭐763. 划分字母区间——题解思路
  • 3- ACM 实现


题目

  • 原题连接:763. 划分字母区间

1- 思路

思路
目标:同样的字母 字符串尽可能的长

  • 问1:怎么确定字母数 ——> 哈希表
  • 问2:怎么让字符尽可能的长?——> 统计每个字符出现的最远位置,根据单个字符的最远出现位置,判断字符串的最远出现位置
    • 如果满足 字符串中所有字符的最远出现位置 <= 当前字符串的最远出现位置,这个字符串就是最长的

2- 实现

⭐763. 划分字母区间——题解思路

在这里插入图片描述

class Solution {List<Integer> res = new ArrayList<>();public List<Integer> partitionLabels(String s) {// 1.定义 hashint[] hash = new int[26];// 2. 求单个字母最远距离for(int i = 0 ; i < s.length();i++){hash[s.charAt(i) - 'a'] = i;}int left = 0;int right = 0;// 3. 实现逻辑for(int i = 0 ; i < s.length();i++){right = Math.max(right,hash[s.charAt(i)-'a']);if(i==right){res.add(right-left+1);left = right+1;}}return res;}
}

3- ACM 实现

public class longestSub {static List<Integer> res = new ArrayList<>();public static List<Integer> partitionLabels(String str){// 1. 定义 hashint len = str.length();int[] hash = new int[len];// 2. 求单个字符最远for(int i = 0 ; i < len;i++){hash[str.charAt(i)-'a'] = i;}int left = 0;int right = 0;// 3. 实现逻辑for(int i = 0 ; i < len;i++){right = Math.max(right,hash[str.charAt(i)-'a']);if(i==right){res.add(right-left+1);left = right+1;}}return res;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();List<Integer> forRes = partitionLabels(str);System.out.println(forRes.toString());}
}

http://www.lryc.cn/news/400785.html

相关文章:

  • 分布式服务基于Zookeeper的分布式锁的实现
  • Rust编程-I/O
  • FastAPI 学习之路(四十七)WebSockets(三)登录后才可以聊天
  • 数据结构—链式二叉树-C语言
  • nginx代理gitee
  • 一款IM即时通讯聊天系统源码,包含app和后台源码
  • Camunda如何通过外部任务与其他系统自动交互
  • Django ORM中ExpressionWrapper的用途
  • 什么软件修复视频画质比较好,视频画质修复工具
  • 效能工具:执行 npm start 可直接切换proxy代理UR后直接启动项目
  • MongoDB自学笔记(一)
  • 【AIGC】二、mac本地采用GPU启动keras运算
  • 【Qt】使用临时对象的坑
  • Apache-Flink未授权访问高危漏洞修复
  • Unable to obtain driver using Selenium Manager: Selenium Manager failed解决方案
  • (01)Unity使用在线AI大模型(使用百度千帆服务)
  • Zed 编辑器发布了原生 Linux 版本
  • 安全入门day01
  • 基于Adaboost的数据分类算法matlab仿真
  • 基于Java的斗地主游戏案例开发(做牌、洗牌、发牌、看牌
  • Ubuntu 22.04.4 LTS (linux) 安装certbot 免费ssl证书申请 letsencrypt
  • MT6825磁编码IC在智能双旋机器人中的应用
  • Datawhale 2024 年 AI 夏令营第二期——基于术语词典干预的机器翻译挑战赛
  • Qt 多窗体、复用窗口的使用
  • python 基础语法整理
  • 【Linux】常见指令(下)
  • jvm常用密令、jvm性能优化、jvm性能检测、Java jstat密令使用、Java自带工具、Java jmap使用
  • 实验三:图像的平滑滤波
  • VUE前端HTML静默打印(不弹出打印对话框)PDF简单方案
  • 大数据hive表和iceberg表格式