随笔分类 - 字符串相关
摘要:题目来源 1047. 删除字符串中的所有相邻重复项 题目详情 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入: "abbaca" 输
阅读全文
摘要:题目来源 443. 压缩字符串 题目详情 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,则将字符追加到 s 中。 否则,需要向 s 追加字符,后跟这一组的长度。 压缩后得到的字符串 s 不应该直接
阅读全文
摘要:题目来源 459. 重复的子字符串 题目详情 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s = "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。 示例 2: 输入: s = "aba" 输出: false 示例 3: 输入
阅读全文
摘要:题目来源 678. 有效的括号字符串 题目详情 给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则: 任何左括号 ( 必须有相应的右括号 )。 任何右括号 ) 必须有相应的左括号 ( 。 左括号 ( 必须在对应的右括号之前 )。 *
阅读全文
摘要:题目来源 补充题9. 36进制加法 题目详情 36进制由0-9,a-z,共36个字符表示。 要求按照加法规则计算出任意两个36进制正整数的和,如1b + 2x = 48 (解释:47+105=152) 要求:不允许使用先将36进制数字整体转为10进制,相加后再转回为36进制的做法 相似题目 415.
阅读全文
摘要:题目来源 125. 验证回文串 题目详情 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明: 本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 解释: "amana
阅读全文
摘要:题目来源 567. 字符串的排列 题目详情 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1的排列。如果是,返回 true ;否则,返回 false 。 换句话说,s1 的排列之一是 s2 的 子串 。 示例 1: 输入: s1 = "ab" s2 = "eidbaooo"
阅读全文
摘要:题目来源 227. 基本计算器 II 题目详情 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 示例 1: 输入: s = "3+2*2" 输出: 7 示例 2: 输入: s = " 3/2 " 输出: 1 示例 3: 输入: s = " 3+5 /
阅读全文
摘要:题目来源 14. 最长公共前缀 题目详情 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: strs = ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: strs = ["dog","raceca
阅读全文
摘要:题目来源 179. 最大数 题目详情 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例 1: 输入:nums = [10,2] 输出: "210" 示例 2: 输入:nums = [3,
阅读全文
摘要:题目来源 165. 比较版本号 题目详情 给你两个版本号 version1 和 version2 ,请你比较它们。 版本号由一个或多个修订号组成,各修订号由一个 '.' 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的
阅读全文
摘要:题目来源 139. 单词拆分 题目详情 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意: 不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s = "leetcode", wordDict
阅读全文
摘要:题目来源 76. 最小覆盖子串 题目详情 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 如果 s 中存
阅读全文
摘要:题目来源 49. 字母异位词分组 题目详情 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。 示例 1: 输入: strs = ["eat", "tea", "tan", "a
阅读全文
摘要:题目来源 438. 找到字符串中所有字母异位词 题目详情 给定两个字符串 s 和 p,找到 s中所有 p的 异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 示例 1: 输入: s = "cbaebabacd", p = "a
阅读全文
摘要:题目来源 LeetCode_3 题目详情 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解
阅读全文
摘要:剑指 Offer 67. 把字符串转换成整数 Offer_67 题目描述 题解分析 java代码 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/15 23:13 */ /** * 题目描述:写一个函数
阅读全文
摘要:剑指 Offer 45. 把数组排成最小的数 Offer_45 题目描述 解题分析 java代码 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/8 16:34 */ import java.util.A
阅读全文
摘要:剑指 Offer 19. 正则表达式匹配 题目链接 一. 字符串匹配大致可以分为三种情况: 第一种:正则串的最后一个字符为正常字符,此时根据主串的最后一个字符是否和它相同来判断是否匹配, 如果相同,则看A[N-2]和B[M-2]是否匹配。 第二种:正则串的最后一个字符为【.】表示可以匹配任意一个字符
阅读全文
摘要:和你在一起 ECNU-3530 字符串的排序和数组的排序一样的 注意本题的特殊情况,需要从大到小排序。 而且需要注意543和5432这种情况,这里其实543更大,最后拼接的结果更大 #include<iostream> #include<cstdio> #include<algorithm> #in
阅读全文