OJ练习第84题——按字典序排在最后的子串

这篇具有很好参考价值的文章主要介绍了OJ练习第84题——按字典序排在最后的子串。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

按字典序排在最后的子串

力扣链接:1163. 按字典序排在最后的子串

题目描述

给你一个字符串 s ,找出它的所有子串并按字典序排列,返回排在最后的那个子串。

示例

示例 1:

输入:s = “abab”
输出:“bab”
解释:我们可以找出 7 个子串 [“a”, “ab”, “aba”, “abab”, “b”, “ba”, “bab”]。按字典序排在最后的子串是 “bab”。
示例 2:

输入:s = “leetcode”
输出:“tcode”

Java代码

class Solution {
    public String lastSubstring(String s) {
        int n = s.length(), start = -1, max = -1;
        for(int i = n - 1; i >= 0; i--) {
            int cur = s.charAt(i) - 'a';
            if(cur > max) {
                start = i;
                max = cur;
            }else if(cur == max) {
                boolean flag = true;
                for(int j = i, k = start; j < start && k < n; j++, k++) {
                    if(s.charAt(j) < s.charAt(k)) {
                        flag = false;
                        break;
                    }else if(s.charAt(j) > s.charAt(k)) break;
                }
                if(flag) start = i;
            }
        }
        return s.substring(start);
    }
}

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/last-substring-in-lexicographical-order
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。文章来源地址https://www.toymoban.com/news/detail-423735.html

到了这里,关于OJ练习第84题——按字典序排在最后的子串的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【算法】串联所有单词的子串【滑动窗口】

    滑动窗口

    2024年01月19日
    浏览(33)
  • 【Java刷题篇】串联所有单词的子串

    力扣链接: 串联所有单词的子串 阅读题目后,可以拿到一个关键信息– words中所有字符串长度相等 ,这后续解题思路的一大关键,还有就是串联字串的字符串顺序可以不同。得到这两个关键信息后,我们就很容易联想到运用 滑动窗口 这个算法来解决问题。 好分析完题目后,

    2024年03月22日
    浏览(34)
  • c 取字符串中的子串

    strcpy(S.ch,ch1) 赋值函数; 字符串没特殊处理,就是从0开始的 %s输出字符串,%c输出字符

    2024年02月07日
    浏览(28)
  • 【LeetCode热题100】【子串】和为 K 的子数组

    题目 给你一个整数数组  nums  和一个整数  k  ,请你统计并返回  该数组中和为  k   的子数组的个数  。 子数组是数组中元素的连续非空序列。 示例 1: 示例 2: 提示: 1 = nums.length = 2 * 104 -1000 = nums[i] = 1000 -107 = k = 107 暴力  直接两层循环找出所有连续子数组的和,这个

    2024年01月19日
    浏览(27)
  • 【LeetCode:30. 串联所有单词的子串 | 滑动窗口 + 哈希表】

    🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文

    2024年01月21日
    浏览(37)
  • 算法leetcode|30. 串联所有单词的子串(rust重拳出击)

    给定一个字符串 s 和一个字符串数组 words 。 words 中所有字符串 长度相同 。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words = [\\\"ab\\\",\\\"cd\\\",\\\"ef\\\"] , 那么 \\\"abcdef\\\" , \\\"abefcd\\\" , \\\"cdabef\\\" , \\\"cdefab\\\" , \\\"efabcd\\\" , 和 \\\"efcdab\\\" 都是串联子串。

    2023年04月08日
    浏览(40)
  • 84.在排序数组中查找元素的第一个和最后一个位置(力扣)

    目录 问题描述 代码解决以及思想  知识点  初始化左边界 left 为数组的起始位置(0),右边界 right 为数组的结束位置( nums.size() - 1 )。 进入一个循环,只要左边界 left 不大于右边界 right ,就执行以下操作: a. 计算中间位置 middle ,这是为了进行二分查找,以避免整数溢

    2024年02月06日
    浏览(34)
  • C++string类replace()函数(替换字符串中的子串)

    C++中的string类提供了replace()函数,用于替换字符串中的子串。其函数原型如下: 其中,pos表示要替换的子串在原字符串中的起始位置,len表示要替换的子串的长度,str表示用来替换的字符串。 replace()函数的使用方法非常简单,只需要传入要替换的子串的位置、长度和替换字

    2024年02月05日
    浏览(40)
  • C++ | Leetcode C++题解之第30题串联所有单词的子串

    题目: 题解:

    2024年04月15日
    浏览(38)
  • 【新2023Q2模拟题JAVA】华为OD机试 - 符合条件的子串长度

    华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典 【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南 华为od机试,独家整理 已参加机试人员的实战技巧 给定字符串 A 、 B 和正整数 V , 字符串 A 和 B 的长度相

    2023年04月18日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包