鱼C论坛

 找回密码
 立即注册
查看: 3346|回复: 0

[学习笔记] leetcode 1180. Count Substrings with Only One Distinct Letter

[复制链接]
发表于 2019-9-8 06:16:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. Given a string S, return the number of substrings that have only one distinct letter.



  2. Example 1:

  3. Input: S = "aaaba"
  4. Output: 8
  5. Explanation: The substrings with one distinct letter are "aaa", "aa", "a", "b".
  6. "aaa" occurs 1 time.
  7. "aa" occurs 2 times.
  8. "a" occurs 4 times.
  9. "b" occurs 1 time.
  10. So the answer is 1 + 2 + 4 + 1 = 8.
  11. Example 2:

  12. Input: S = "aaaaaaaaaa"
  13. Output: 55


  14. Constraints:

  15. 1 <= S.length <= 1000
  16. S[i] consists of only lowercase English letters.
复制代码

  1. class Solution {
  2.     public int countLetters(String S) {
  3.         if (S.length() == 0) return 0;
  4.         if (S.length() == 1) return 1;
  5.         int sum = 0;
  6.         String remain = "";
  7.         Set <String> set = new HashSet<>();
  8.         String init = S.substring(0,1);
  9.         set.add(init);
  10.         for(int i = 0; i< S.length(); i++){
  11.             
  12.             if(S.substring(i,i+1).equals(init)) {
  13.                
  14.                 remain = remain + S.substring(i,i+1);
  15.                 set.add(remain + S.substring(i,i+1));
  16.             }
  17.             else {
  18.                 remain = "";
  19.                 init = S.substring(i,i+1);
  20.                
  21.                 set.add(init);
  22.             }
  23.         }
  24.         Iterator<String> iterator = set.iterator();
  25.         while(iterator.hasNext()) {
  26.             sum = sum + compare(S,iterator.next());
  27.         }
  28.         
  29.         return sum;
  30.     }
  31.    
  32.     public int compare(String S, String s){
  33.         int sum = 0;
  34.         for(int i = 0; i<= S.length() - s.length(); i++){
  35.             if(S.substring(i,i+s.length()).equals(s)) sum ++;
  36.             
  37.         }
  38.         return sum;
  39.     }
  40. }
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-13 14:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表