返回顶部
首页 > 资讯 > 后端开发 > Python >java算法题解Leetcode763划分字母区间示例
  • 241
分享到

java算法题解Leetcode763划分字母区间示例

java算法划分字母区间javaLeetCode 2023-01-09 12:01:10 241人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录题目解题思路题目 763. 划分字母区间 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的

题目

763. 划分字母区间

字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。

示例: 输入:S = "ababcbacadefegdehijhklij" 输出:[9,7,8] 解释: 划分结果为 "ababcbaca", "defegde", "hijhklij"。 每个字母最多出现在一个片段中。 像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段数较少。

提示: S的长度在[1, 500]之间。 S只包含小写字母 'a' 到 'z' 。

解题思路

1)解决问题的根本在于,找到一个区间,这个区间内的字符,没有在其他区间出现过

2)那我们就想找到这个区间的开始位置、结束位置,针对这个区间的每个字符,如果字符出现的lastIndex大于当前统计到的stop,则stop更新为此边界,直到遍历到这个stop边界,证明此次遍历,start->stop这个区间内,已经包含所有重复字符

import java.util.ArrayList;
import java.util.List;
class Solution {
	public List<Integer> partitionLabels(String s) {
		List<Integer> res = new ArrayList<Integer>();
		if (s == null || s.length() == 0) {
			return res;
		}
		int start = 0, stop = 0;
		for (int i = start; i < s.length(); i++) {
			if (s.lastIndexOf(s.charAt(i)) > stop) {
				stop = s.lastIndexOf(s.charAt(i));
			}
			if (i == stop) {
				res.add(stop - start + 1);
				start = i + 1;
			}
		}
		return res;
	}
}

以上就是java算法题解LeetCode763划分字母区间示例的详细内容,更多关于java算法划分字母区间的资料请关注编程网其它相关文章!

--结束END--

本文标题: java算法题解Leetcode763划分字母区间示例

本文链接: https://lsjlt.com/news/177165.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java算法题解Leetcode763划分字母区间示例
    目录题目解题思路题目 763. 划分字母区间 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的...
    99+
    2023-01-09
    java算法划分字母区间 java LeetCode
  • 前端算法题解leetcode49-字母异位词分组
    目录题目解题思路代码实现题目 题目地址 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词...
    99+
    2024-04-02
  • Java面试题之算法的示例分析
    小编给大家分享一下Java面试题之算法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!面试题1:你说一下常用的排序算法都有哪些?追问1:谈一谈你对快排的理...
    99+
    2023-06-20
  • Java矩阵连乘问题(动态规划)算法实例分析
    本文实例讲述了Java矩阵连乘问题(动态规划)算法。分享给大家供大家参考,具体如下:问题描述:给定n个矩阵:A1,A2,...,An,其中Ai与Ai+1是可乘的,i=1,2...,n-1。确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连...
    99+
    2023-05-30
    java 矩阵 算法
  • Go Java 算法之字符串解码示例详解
    目录字符串解码方法一:栈(Java)方法二:递归(Go)字符串解码 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号...
    99+
    2024-04-02
  • Java面试题之手撸算法的示例分析
    这篇文章将为大家详细讲解有关Java面试题之手撸算法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。手撸算法1:查找数组中重复元素和重复元素的个数当听让我写这个算法时,纸笔还没给到我手上,作为一个...
    99+
    2023-06-20
  • Go Java算法之交错字符串示例详解
    目录交错字符串方法一:动态规划(Java)方法一:动态规划(GO)交错字符串 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 ...
    99+
    2022-11-13
    Go Java算法交错字符串 Go算法 Java算法
  • 前端面试中字节的笔试题和算法题示例分析
    这篇文章将为大家详细讲解有关字节的笔试题和算法题示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。题目给定一个包含 m x n 个元素的矩阵(m 行, ...
    99+
    2024-04-02
  • java暴力匹配及KMP算法解决字符串匹配问题示例详解
    目录要解决的问题?一、暴力匹配算法一个图例介绍KMP算法二、KMP算法算法介绍一个图例介绍KMP算法  代码实现要解决的问题? 一、暴力匹配算法 一个图例介绍KMP算法 St...
    99+
    2024-04-02
  • Java C++ 算法题解拓展leetcode670最大交换示例
    目录题目要求思路:模拟JavaC++Rust题目要求 思路:模拟 Java class Solution { public int maximumSwap(int num)...
    99+
    2024-04-02
  • Java基于递归解决全排列问题算法示例
    本文实例讲述了Java基于递归解决全排列问题算法。分享给大家供大家参考,具体如下:排列问题设R={r1,r2,...,rn}是要进行排列的n个元素,Ri=R-{ri}。集合x中元素的全排列记为Perm(X)。(ri)Perm(X)表示在全排...
    99+
    2023-05-30
    java 递归 全排列
  • Java C++ 算法题解leetcode669修剪二叉搜索树示例
    目录题目要求思路一:模拟迭代JavaC++思路二:递归JavaC++Rust题目要求 思路一:模拟迭代 依次判断每个节点是否合法:首先找出结果的根,若原根小了就拉右边的过来,大了...
    99+
    2024-04-02
  • Java基于分治算法实现的棋盘覆盖问题示例
    本文实例讲述了Java基于分治算法实现的棋盘覆盖问题。分享给大家供大家参考,具体如下:在一个2^k * 2^k个方格组成的棋盘中,有一个方格与其它的不同,若使用以下四种L型骨牌覆盖除这个特殊方格的其它方格,如何覆盖。四个L型骨牌如下图:棋盘...
    99+
    2023-05-30
    java 分治算法 棋盘覆盖
  • java贪心算法初学感悟图解及示例分享
    算法简介 1)贪心算法是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致是最好或者最优的算法 2)贪心算法所得到的结果不一定是最优的结果(有...
    99+
    2024-04-02
  • java算法之余弦相似度计算字符串相似率的示例分析
    小编给大家分享一下java算法之余弦相似度计算字符串相似率的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java有哪些集合类Java中的集合主要分为四类...
    99+
    2023-06-15
  • java算法题解牛客BM99顺时针旋转矩阵示例
    目录题目描述解题思路实践代码解法1解法2题目描述 BM99 顺时针旋转矩阵 描述 有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。 给定一个NxN的矩阵,和矩阵的阶数...
    99+
    2023-01-09
    java算法顺时针旋转矩阵 java 算法
  • Python数学建模学习模拟退火算法整数规划问题示例解析
    目录1、整数规划问题2、模拟退火算法处理整数约束3、数模案例3.1 问题描述:3.2 问题分析:3.3 问题建模:3.4 惩罚函数法求解约束优化问题:4、模拟退火算法 Python ...
    99+
    2024-04-02
  • Java基于分治算法实现的线性时间选择操作示例
    本文实例讲述了Java基于分治算法实现的线性时间选择操作。分享给大家供大家参考,具体如下:线性时间选择问题:给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素,(这里给定的线性集是无序的)。随机划分线性选择线性...
    99+
    2023-05-30
    java 分治算法
  • Java使用贪心算法解决电台覆盖问题(示例详解)
    java使用贪心算法解决电台覆盖问题 代码实现 public class Demo { public static void main(String[] args) { ...
    99+
    2024-04-02
  • 例题详解Java dfs与记忆化搜索和分治递归算法的使用
    目录一、dfs(深度优先搜索)1.图的dfs2.树的dfs二、记忆化搜索1.普通递归:O(2^n)2.记忆化搜索: O(n)三、分治四、算法题1.dia和威严 示例2.小红...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作