首页 > 其他分享 >leetcode 1750. 删除字符串两端相同字符后的最短长度

leetcode 1750. 删除字符串两端相同字符后的最短长度

时间:2024-12-12 20:58:47浏览次数:4  
标签:right int while && 字符串 1750 leetcode left

1750. 删除字符串两端相同字符后的最短长度

注意审题,是相同的字符,而不是相同的字符串。所以对于 abcccab 来说就是输出7

class Solution {
public:
    int minimumLength(string s) {
        int left = 0,right = s.size()-1;
        while(left < right){
            if(s[left] != s[right])  return right-left+1;
            while(s[left] == s[left+1] && left + 1 != right)  ++left;
            while(s[right] == s[right-1] && left + 1 != right)  --right; 
            ++left;--right;
        }
        if(left + 1 == right && s[left] == s[right])  return 0;
        return right-left+1;
    }
};

题解:进一步优化

class Solution {
public:
    int minimumLength(string s) {
        int left = 0,right = s.size()-1;
        while(left < right && s[left] == s[right]){
            char temp = s[left];
            while(left <= right && s[left] == temp)  ++left;
            while(left <= right && s[right] == temp)  --right;
        }
        return right-left+1;
    }
};

 

标签:right,int,while,&&,字符串,1750,leetcode,left
From: https://www.cnblogs.com/uacs2024/p/18603430

相关文章

  • leetcode 125. 验证回文串
    125.验证回文串二刷,用时3ms,内存9.81MB一定要注意,是移除所有除了数字、字母以外的字符classSolution{public://'a'-'A'=32boolisPalindrome(strings){intleft=0,right=s.size()-1;while(left<right){while(left<......
  • 数字组合转字母&删除二叉树节点&字符串相乘&打家劫舍ii&无序数组第k大 &无序数组前k大
    一、数字串转换为字符串1-26个数字分别代表26个字符(A-z)输入"12326〞就可以拆分为【1,2,3,2,6】、(12,3,2,6].[1,23,2,6]【1,23,26】、【12,3,26】等,将每种组合转成成对应字母输出,输出所有可能的结果返回所有可能的转换结果//将数字串转换成字母串//将数字串转换成字母......
  • 2024/12/7【哈希表】 LeetCode453 四数相加II ,知识点:defaultdict,lambda函数,dict的get
    454.四数相加II-力扣(LeetCode)代码随想录(programmercarl.com)本题解题步骤:首先定义一个unordered_map(在python中为字典),key放a和b两数之和,value放a和b两数之和出现的次数。遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中。定义int变量count,用来统计a+b+......
  • leetcode 2516. 每种字符至少取 K 个
    2516.每种字符至少取K个逆向思维:滑动窗口内的字符a最多个数为(原字符串a的个数-k),b和c同理。求出这个滑动窗口最长长度res,结果返回size-resclassSolution{public:inttakeCharacters(strings,intk){intsize=s.size(),res=0;intlette......
  • Linux中利用find命令查找包含对应字符串的文件
    在Linux中,find命令通常用于查找文件系统中的文件和目录,而不是直接用于查找文本中的字符串。如果您想要在一组文件中查找包含特定字符串的文件,您可以结合使用find命令和grep命令来实现。以下是一些使用find和grep组合来查找包含特定字符串的文件的例子:在当前目录及子目录中查找......
  • 字符串最小表示法
    字符串最小表示法其实就是用双指针进行一个自我比较。模板:#include<iostream>#include<string>usingnamespacestd;intmain(){strings;cin>>s;intoriginal_length=s.size();//将每个字符添加到字符串的末尾for(inti=0;i<ori......
  • [LeetCode] 1368. Minimum Cost to Make at Least One Valid Path in a Grid 使网格图
    Givenan mxn grid.Eachcellofthegridhasasignpointingtothenextcellyoushouldvisitifyouarecurrentlyinthiscell.Thesignof grid[i][j] canbe:1 whichmeansgotothecelltotheright.(i.egofrom grid[i][j] to grid[i][j+1])......
  • 1321. 餐馆营业额变化增长 - 力扣(LeetCode)
    1321.餐馆营业额变化增长-力扣(LeetCode)目标输入输入:营业额customer_idnamevisited_onamount1Jhon2019/1/11002Daniel2019/1/21103Jade2019/1/31204Khaled2019/1/41305Winston2019/1/51106Elvis2019/1/61407Anna2019/1/71508Maria2019/1/8809Jaze2019/1/91101Jhon2019......
  • 1341. 电影评分 - 力扣(LeetCode)
    1341.电影评分-力扣(LeetCode)目标输入输入:评分表movie_iduser_idratingcreated_at1132020/1/121242020/2/111322020/2/121412020/1/12152020/2/172222020/2/12322020/3/13132020/2/223242020/2/25输入:用户表user_idname1Daniel2Monica3Maria4James输入:电影表movie......
  • 626. 换座位 - 力扣(LeetCode)
    626.换座位-力扣(LeetCode)目标输入输入:座位表idstudent1Abbot2Doris3Emerson4Green5Jeames输出输出:新座位表idstudent1Doris2Abbot3Green4Emerson5Jeames分析编写解决方案来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。按id......