Question

830. Positions of Large Groups

Solution

题目大意:

字符串按连续相同字符分组,超过3个就返回首字符和尾字符

思路 :

举例abcdddeeeeaabbbcd
end start end-start
a 0 0
b 1 0,1 1-0=1
c 2 1,2 2-1=1
d 3 2,3 3-2=1
d 4 3
d 5 3
e 6 3,6 6-3=3 3,5
e 7 6
e 8 6
e 9 6
a 10 6,10 10-6=4 6,9
a 11 10
b 12 10,12 12-10=2
b 13 12
b 14 12
c 15 12,15 15-12=3 12,14
d 16 13,14 16-15=1

Java实现:

public List<List<Integer>> largeGroupPositions(String S) {
List<List<Integer>> retList = new ArrayList<>();
if (S.length() < 3) return retList;
int startIdx = 0, endIdx = 0;
for (int i = 1; i < S.length(); i++) {
endIdx = i;
if (S.charAt(i) != S.charAt(startIdx)) {
if (endIdx - startIdx > 2) {
retList.add(Arrays.asList(startIdx, endIdx - 1));
}
startIdx = i;
}
}
if (endIdx - startIdx > 1) {
retList.add(Arrays.asList(startIdx, endIdx));
}
return retList;
}

最新文章

  1. Redis 5种数据结构使用及注意事项
  2. Design1:数据层次结构建模之一
  3. Hibernate中的一对一关联和组件的映射
  4. 基于Eclipse的scala应用开发
  5. 易维清使用技巧:CHM编辑利器
  6. 【转】shell 教程——05 第一个Shell脚本
  7. Mvc动态注册HttpModule详解
  8. 记录一个从没见过的bug
  9. Integer.valueOf()与Integer.parseInt()区别
  10. Nginx实现URL重写
  11. Python day 04
  12. 20165231 2017-2018-2 《Java程序设计》第3周学习总结
  13. 模板-gcd
  14. 登录页面和FORM的职责不对称,处理方法,刷新工作流程
  15. [Leetcode 46]全排列 Permutations 递归
  16. Java日志 #01# 入门
  17. python之路---12 生成器 推导式
  18. python之路---03 整型 bool 字符串 for循环
  19. Django 性能测试
  20. UIViewController的初始化

热门文章

  1. 定时任务__@Xxl-JOB的使用
  2. Ubuntu 18.04 磁盘根目录在线扩容 &amp; 修改分区 inode 数量
  3. anijs 一个小巧的动画库
  4. task0002(四)- 练习:数据处理、轮播及交互
  5. pushbutton 移动端弹出列表选择框
  6. java中抛出throw关键字是怎么用的? 举例?
  7. PAT B1013 数素数
  8. Spring集成web环境(使用封装好的工具)
  9. 根据官方文档使用Visual Studio Code创建代码组件的一些总结
  10. Shiro-登陆流程认证-图解