文章目录

  • 1. 题目
  • 2. 解题

1. 题目

一个字符串的所有字符都是一样的,被称作等值字符串

举例,"1111""33" 就是等值字符串。
相比之下,"123"就不是等值字符串。

规则:给出一个数字字符串s,将字符串分解成一些等值字符串,如果有且仅有一个等值子字符串长度为2,其他的等值子字符串的长度都是3.

如果能够按照上面的规则分解字符串s,就返回真,否则返回假。

子串就是原字符串中连续的字符序列。

示例 1:
输入: s = "000111000"
输出: false
解释:  s只能被分解长度为3的等值子字符串。示例 2:
输入: s = "00011111222"
输出: true
解释: s 能被分解为 ["000","111","11","222"].示例 3:
输入: s = "01110002223300"
输出: false
解释: 一个不能被分解的原因是在开头有一个0.提示:
1 <= s.length <= 1000
s 仅包含数字。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/check-if-a-string-is-decomposble-to-value-equal-substrings
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 按题意模拟
class Solution {public:bool isDecomposable(string s) {if(s.size()%3 != 2)return false;char prev = s[0];int ct = 1, two = 0;s += '*'; // 简化代码for(int i = 1; i < s.size(); ++i){if(s[i] != prev){if(ct == 1 || ct > 3)return false;else if(ct == 2){two++;if(two > 1)return false;}ct = 1;}else{ct++;if(ct > 3)ct -= 3;}prev = s[i];}return two==1;//只能有一个长度2的等值字符子串}
};

0 ms 6.6 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1933. 判断字符串是否可分解为值均等的子串相关推荐

  1. linux 判断字符串格式,shell基础(二)字符子串及类型判断符

    一.变量子串 [root@mycentos shell_dir]# old="hello,world" [root@mycentos shell_dir]# echo $old h ...

  2. LeetCode 1704. 判断字符串的两半是否相似

    文章目录 1. 题目 2. 解题 1. 题目 给你一个偶数长度的字符串 s .将其拆分成长度相同的两半,前一半为 a ,后一半为 b . 两个字符串 相似 的前提是它们都含有相同数目的元音('a',' ...

  3. Leetcode1704判断字符串的两半是否相似(C++题解)

    1704. 判断字符串的两半是否相似 给你一个偶数长度的字符串 s .将其拆分成长度相同的两半,前一半为 a ,后一半为 b . 两个字符串 相似 的前提是它们都含有相同数目的元音('a','e',' ...

  4. 用递归方式判断字符串是否是回文

    题目要求:使用递归方式判断某个字串是否是回文( palindrome )回文"是指正着读.反着读都一样的句子.比如"我是谁是我" 设计思想:首先能实现可输出任意字符串,然 ...

  5. leetcode 344. 反转字符串 541. 反转字符串 II 双指针解

    目录 leetcode 344.反转字符串 1.题目 2.思考 leetcode 541. 反转字符串 II 1.题目 2.思考 leetcode 344.反转字符串 1.题目 2.思考 典型的双指针 ...

  6. LeetCode——1849. 将字符串拆分为递减的连续值(Splitting a String Into Descending Consecutive Val..)[中等]——分析及代码(Java)

    LeetCode--1849. 将字符串拆分为递减的连续值[Splitting a String Into Descending Consecutive Values][中等]--分析及代码[Java ...

  7. 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串

    LeetCode [344. 反转字符串] 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**. ...

  8. leetcode 205.同构字符串

    leetcode 205.同构字符串 题目描述 给定两个字符串 s 和 t,判断它们是否是同构的. 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的. 所有出现的字符都必须用另一个字符 ...

  9. C++ 判断字符串是否为空

    C++ 判断字符串是否为空 有2种方法 1种是用使用empty 2 使用== 与"" 比较 具体的如下: #include <iostream> #include &l ...

最新文章

  1. python_socket
  2. Exchange 2007迁移2010时的公用文件夹多个公用树错误
  3. Hbase数据存储架构
  4. 认识计算机硬件观评课,观课听课评课评语
  5. Android 动态类加载实现免安装更新
  6. 【Linux】 命令收集
  7. 数据库IN查询参数化改造的方法
  8. 创意设计师变圆周率为彩色艺术品
  9. C++虚继承的实现原理、内存分布、作用
  10. 多语言版本网站建设数据库设计和考虑的因素
  11. 实现国标GB/T2818视频流媒体解决方案EasyGBS国标GB28181-2016版的sip协议tcp沾包流程说明介绍
  12. ssis 有条件拆分_SSIS条件拆分转换概述
  13. 程序员修神之路--分布式高并发下Actor模型如此优秀
  14. Java调用动态库 缺点,Java调用动态库所需要关心的有关问题
  15. TensorFlow精进之路(十一):反向传播BP
  16. Logstash 初探
  17. 教育平台在线,教育平台源码 类似eduline教育平台系统源码下载
  18. 用C++编写银行叫号系统,项目开源,适合零基础小白学习!
  19. JS正则表达式语法大全(非常详细)
  20. 小米Civi的女性突围战

热门文章

  1. rabbitmq direct 多个消费者_一文解析 RabbitMQ 最常用的三大模式
  2. Django REST framework 视图
  3. ajax on ture,细数Ajax请求中的async:false和async:true的差异
  4. python求加速度_如何利用Python 为自然语言处理加速度
  5. android 软件盘弹回去的最好体验,Android 软键盘弹出 日常填坑
  6. python3图片转代码_python3图片转换二进制存入mysql示例代码
  7. 《C++标准程序库》学习笔记5 — 第七章
  8. BZOJ3251: 树上三角形
  9. Bootstrap全局CSS样式之表单
  10. 天气预报Dom解析(转)