首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

leetcode之两个相同字符之间最长子字符串

序 本文主要记录一下leetcode之两个相同字符之间最长子字符串 题目 给你一个字符串 s,请你返回 两个相同字符之间最长子字符串长度 ,计算长度时不含这两个字符。...如果不存在这样字符串返回 -1 。 子字符串字符串一个连续字符序列。 示例 1: 输入:s = "aa" 输出:0 解释:最优字符串两个 'a' 之间空子字符串。...示例 3: 输入:s = "cbzxy" 输出:-1 解释:s 中不存在出现出现两次字符,所以返回 -1 。...,在遍历字符串时候,遇到相同字符时候,计算前后下标的差来得出子字符串长度,然后通过对比记录最长字符串长度。...doc 两个相同字符之间最长子字符串

2.1K10

leetcode之两个相同字符之间最长子字符串

序 本文主要记录一下leetcode之两个相同字符之间最长子字符串 substring-function-in-javascript.png 题目 给你一个字符串 s,请你返回 两个相同字符之间最长子字符串长度...如果不存在这样字符串返回 -1 。 子字符串字符串一个连续字符序列。 示例 1: 输入:s = "aa" 输出:0 解释:最优字符串两个 'a' 之间空子字符串。...示例 3: 输入:s = "cbzxy" 输出:-1 解释:s 中不存在出现出现两次字符,所以返回 -1 。...,在遍历字符串时候,遇到相同字符时候,计算前后下标的差来得出子字符串长度,然后通过对比记录最长字符串长度。...doc 两个相同字符之间最长子字符串

1.5K00
您找到你想要的搜索结果了吗?
是的
没有找到

两个相同字符之间最长子字符串

题目 给你一个字符串 s,请你返回 两个相同字符之间最长子字符串长度 ,计算长度时不含这两个字符。如果不存在这样字符串返回 -1 。 子字符串字符串一个连续字符序列。...示例 1: 输入:s = "aa" 输出:0 解释:最优字符串两个 'a' 之间空子字符串。 示例 2: 输入:s = "abca" 输出:2 解释:最优字符串是 "bc" 。...示例 3: 输入:s = "cbzxy" 输出:-1 解释:s 中不存在出现出现两次字符,所以返回 -1 。...示例 4: 输入:s = "cabbac" 输出:4 解释:最优字符串是 "abba" ,其他非最优解包括 "bb" 和 "" 。...解题 记录每个字符出现第一次位置,和最后一次位置 class Solution { public: int maxLengthBetweenEqualCharacters(string s

1.4K20

两个相同字符之间最长子字符串(难度:简单)

一、题目 给你一个字符串 s,请你返回 两个相同字符之间最长子字符串长度,计算长度时不含这两个字符。如果不存在这样字符串返回 -1 。 子字符串字符串一个连续字符序列。...二、示例 2.1> 示例 1: 【输入】s = "aa" 【输出】0 【解释】最优字符串两个 'a' 之间空子字符串。...2.3> 示例 3: 【输入】s = "cbzxy" 【输出】-1 【解释】s 中不存在出现出现两次字符,所以返回 -1 。...提示: • 1 <= s.length <= 300 • s 只含小写英文字母 三、解题思路 根据题意,既然要计算两个相同字符直接最长长度,那么我们可以将其保存在哈希表中,key=字符 value=下标...数组存储:就是该字符第一次出现位置。 那么,我们遍历字符串s中每个字符,如果发现了重复字符,计算长度即可,最终通过Math.max(...)返回最长字符串子串长度。

53330

762 字符串匹配----给定两个长度相同字符串 a 和字符串 b。如果在某个位置 i 上,满足字符串 a 上字符 a 和字符串 b 上字符 b 相同,那么这个位置上字符就是匹配

给定两个长度相同字符串 aa 和字符串 bb。...如果在某个位置 ii 上,满足字符串 aa 上字符 a[i]a[i] 和字符串 bb 上字符 b[i]b[i] 相同,那么这个位置上字符就是匹配。...如果两个字符串匹配位置数量与字符串总长度比值大于或等于 kk,则称两个字符串是匹配。 现在请你判断给定两个字符串是否匹配。...输入格式 第一行包含一个浮点数 kk,第二行包含字符串 aa,第三行包含字符串 bb。 输入字符串中不包含空格。 输出格式 如果两个字符串匹配,则输出 yes。 否则,输出 no。...数据范围 0≤k≤10≤k≤1, 字符串长度不超过 100100。

81620

【C 语言】内存四区原理 ( 常量区示例 | 不同函数返回相同字符串指针地址相同 )

文章目录 前言 一、正常程序 二、获取相同字符串内容 前言 C / C++ 编译器会对代码进行 词法分析 , 语法分析 , 句法分析 ; 然后对代码进行优化 ; 将 字符串常量 赋值给指针时 , 首先去...全局变量区 常量区 查询该 字符串常量是否存在 , 如果存在 , 直接使用该 字符串常量地址 赋值给 char* 指针 , 如果不存在 , 直接在常量区 创建一个字符串 , 然后将地址 赋值给...char* 指针 ; 下面的 2 个程序 , 分别演示 不同字符串常量 和 相同字符串常量 地址区别 ; 一、正常程序 ---- 分别从两个函数中 , 获取两个不同字符串 , 打印出这两个...字符串 内容 及 指针指向地址 ; 代码示例 : #include /* * 函数1 返回字符串 1 */ char *get_str1() { char *p1...、获取相同字符串内容 ---- 如果在 2 个函数中 , 获取 字符串相同字符串 ; 此时打印出两个函数指针地址是相同 , 这是因为 获取 字符串 都是从 全局区 中 常量区 中获取

3.7K10

2023-07-29:给你一个由数字组成字符串 s,返回 s 中独特子字符串数量。 其中每一个数字出现频率都相同

2023-07-29:给你一个由数字组成字符串 s,返回 s 中独特子字符串数量。 其中每一个数字出现频率都相同。...答案2023-07-29: 大体步骤如下: 1.初始化变量base为固定1000000007,用于计算哈希码。 2.创建一个空哈希集合set,用于存储独特子字符串哈希码。...8.开始内层循环,依次遍历从l位置开始字符串每个字符,使用变量r表示当前字符索引。...15.循环结束后,更新l,进入下一个子字符串计算。 16.返回集合set大小,即独特子字符串数量。...外层循环遍历字符串s每个字符,内层循环遍历以每个字符为起始位置字符串。因此,总时间复杂度可以近似为N*(N+1)/2,即O(N^2)。

18350

给出两个长度相同字符串 str1 和 str2 请你帮忙判断字符串 str1 能不能在

给出两个长度相同字符串 str1 和 str2, 请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化 后变成字符串 str2, 每一次转化时,你可以将 str1 中出现 所有 相同字母变成其他...任何 小写英文字母, 只有在字符串 str1 能够通过上述方式顺利转化为字符串 str2 时才能返回 true 。...答案2023-08-14: 大体过程如下: 1.首先,比较两个字符串 str1 和 str2 是否相等。如果相等,则可以直接返回 true,因为不需要进行转化操作。...如果 mapChars[idx] 为 0,说明该字符还没有出现过,将 kinds 增加 1,并且将 mapChars[idx] 加 1。...5.如果 kinds 已经达到 26(字母表中所有字母种类数量),则说明字符串 str2 中所有字母都已经出现过,无法再进行转化操作,直接返回 false。

12320

2023-04-19:给定一个非负数组arr 任何两个数差值绝对,如果arr中没有,都要加入到arr里 然后arr继续,任何两个数差值绝对,如果ar

2023-04-19:给定一个非负数组arr任何两个数差值绝对,如果arr中没有,都要加入到arr里然后arr继续,任何两个数差值绝对,如果arr中没有,都要加入到arr里一直到arr大小固定...1 <= arr长度 <= 10^50 <= arr数值 <= 10^5来自国外题目论坛。答案2023-04-19:暴力方法我们可以先从暴力方法考虑,逐步计算每一轮得到 arr。...例如,如果 arr 中有一个数值 num=20,则它因子包括 1、2、4、5、10 和 20,我们可以将这些因子都加入到一个列表 factors 中。...接下来,我们可以根据 factors 中元素计算出所有可能差值,并放入到一个列表 diffs 中。注意,为了避免重复计算,我们只需要计算 diffs 中不存在差值即可。...然后,我们需要计算所有可能差值,在 diffs 中去重,这一步时间复杂度也是 O(n log n)。因此,总共时间复杂度是 O(n log n)。空间复杂度为 O(nlogn)。

77410

leetcode刷题

对于双重循环贪心算法改进:一般题目中会有标志数字,比如最大,最小,特殊然后就会省去一次循环开销数组Arrays.equals(char[],char[]) 可以比较两个字符数组是否相等 :...(i), String s = i + "";`字符串字符串变数组, - [ ] 用循环加上s.chatAt(i); - [ ] s.toCharArray()变为字符数组 哈希表(也叫散列表)内部维护一个...指向pre 总结:**指针指向类(出现next)是正着读,赋值类是反着读**对于涉及到链表头CRUD,做法是:**创建一个虚拟头结点pre指向head,最后返回是pre.next(也叫做哑节点),...这个做法一般和快慢指针搭配使用**树二叉搜索树解题方法就是遍历,对于左节点调用相同遍历函数对于要递归遍历比较两个节点来说,临界条件是先判断两个节点是否为空,在判断两个节点是否一个为空,最后判断两个结点是否相等...,走过一个地方就减去val,然后带入减完和根节点 递归递归就是找重复性和临界条件终止条件--->处理当前层逻辑----->递归到下一层------>(恢复当前层状态)

9410

2023-07-07:给出两个字符串 str1 和 str2。 返回同时以 str1 和 str2 作为子序列最短字符串。 如

2023-07-07:给出两个字符串 str1 和 str2。 返回同时以 str1 和 str2 作为子序列最短字符串。 如果答案不止一个,则可以返回满足条件任意一个答案。...4.在每个循环中,比较 str1[i-1] 和 str2[j-1] : • 如果它们相等,更新 dp[i][j] 为 dp[i-1][j-1] + 1,表示当前字符能够在最短公共超序列中出现。...• 否则,取 dp[i-1][j] 和 dp[i][j-1] 中较大,表示当前字符不能同时出现在最短公共超序列中,需要从其中一个字符串中选择。...这是使用动态规划(Dynamic Programming)解决字符串相关问题算法。具体来说,这个算法用于找到两个字符串最短公共超序列(Shortest Common Supersequence)。...最短公共超序列是指包含两个字符串所有字符,并且是长度最短序列。通过使用动态规划方法,可以利用子问题最优解来构建整体最优解,从而高效地解决这个问题。

16820

【Leetcode -383.赎金信 -387.字符串第一个唯一字符

,创建两个数组并初始化为0,将两个字符串元素分别作为这两个数组下标记录它们出现次数,最后比较它们出现次数关系;下面看代码以及注释: bool canConstruct(char* ransomNote...//hash数组以ransomNote元素减去'a'作为下标,每次相同元素累加起来 for (int i = 0; i < strlen(ransomNote); i++)...,在26个字母范围内, //如果是相同字母,在hash数组中存放个数大于tmp数组中个数,就返回false //因为要使magazine这个字符串元素可以组成ransomNote...,就返回true return true; } Leetcode - 387.字符串第一个唯一字符 题目:给定一个字符串 s ,找到 它第一个不重复字符,并返回索引 。...,创建一个数组并初始化为0,以s字符串元素s[ i ]作为这个数组下标,记录每个元素出现次数;然后检查数组以s[ i ]为下标第一次等于1位置,返回 i 这个位置即可; int firstUniqChar

9910

java基础学习_常用类02_Scanner类和String类_day12总结

A:先用键盘录入对象获取一个数值后,再创建一个键盘录入对象用来获取字符串。         B:把所有的数据都先按照字符串获取,然后要什么,你就对应转换成什么。...):       基本类型:比较就是是否相同。       ...引用类型:比较就是地址是否相同。 equals(该方法比较是):       只能是引用类型:默认情况下,比较是地址。       不过,我们可以根据情况自己重写该方法。...,就用前一个串第一个字符ASCII减去后一个串第一个字符ASCII,得到一个int返回。             ...若第一个字符相同,则比较第二个字符,以此类推。若都相同,则返回int0。 若如下这样,查看该方法源码可知,返回是第一个串比第二个串多字符个数。

37910

C语言训练:三个字符串比较大小,实现两个整数数交换统计二进制中1个数

compare_s函数: 此函数目的是比较两个字符串s1和s2大小。 使用while循环逐个字符比较两个字符串,直到其中一个字符串结束或找到不同字符。...如果两个字符串某个字符不相等,则返回它们差值,确定它们大小关系。 如果两个字符串完全相同,则返回0。...首先,它确保s1是三个字符串中最大然后确保s2是次大,最后确保s3是最小。 为了交换字符串,它使用了一个临时字符串s。...int compare_s(char* s1, char* s2)//定义比较字符串大小函数 //模拟实现strcmp { int i = 0;//把函数返回初始化为0 while...* s2)//交换两个字符串 { char s[N]; strcpy(s, s1); strcpy(s1, s2); strcpy(s2, s); } void my_sort(char

12710
领券