zoukankan      html  css  js  c++  java
  • Codewars题记 :Count the number of Duplicates

    1、题目:

    Count the number of Duplicates
    Write a function that will return the count of distinct case-insensitive alphabetic characters and numeric digits that occur more than once in the input string. The input string can be assumed to contain only alphabets (both uppercase and lowercase) and numeric digits.

    Example
    "abcde" -> 0 # no characters repeats more than once
    "aabbcde" -> 2 # 'a' and 'b'
    "aabBcde" -> 2 # 'a' occurs twice and 'b' twice (`b` and `B`)
    "indivisibility" -> 1 # 'i' occurs six times
    "Indivisibilities" -> 2 # 'i' occurs seven times and 's' occurs twice
    "aA11" -> 2 # 'a' and '1'
    "ABBA" -> 2 # 'A' and 'B' each occur twice

    2、我的解决方案

     1 class CountingDuplicates {
     2     public static int duplicateCount(String text) {
     3         
     4         Map<Character, Integer > map = new HashMap<Character, Integer>();
     5         
     6         for (Character one : text.toLowerCase().toCharArray()) {
     7             if (map.containsKey(one)) {
     8                 Integer sum = map.get(one);
     9                 sum++;
    10                 map.put(one, sum);
    11             } else {
    12                 map.put(one, 1);
    13             }
    14         }
    15         
    16         int result = 0;
    17         
    18         for (Entry<Character, Integer> entry : map.entrySet()) {
    19             if (entry.getValue()>1) {
    20                 result++;
    21             }
    22         }
    23         
    24         return result;
    25     }
    26 }

    3、最佳解决方案

    public class CountingDuplicates {
      public static int duplicateCount(String text) {
        int ans = 0;
        text = text.toLowerCase();
        while (text.length() > 0) {
          String firstLetter = text.substring(0,1);
          text = text.substring(1);
          if (text.contains(firstLetter)) ans ++;
          text = text.replace(firstLetter, "");
        }
        return ans;
      }
    }

    4、总结
      最佳解决方案每次将一个字符截取出来然后查找,查找完后就会把字符串中这个字符删除掉,再进行下一轮查找。

     
  • 相关阅读:
    footer点击添加active class
    css背景图与html插入img的区别
    js实现游戏转盘抽奖
    gulp压缩css和js
    前后端分离中,gulp实现头尾等公共页面的复用 前言
    js 输入框只能输入 1-7 的数字
    java 环境变量配置
    两日期相减得到天数
    jQuery如何追加tr到table中 添加到头或者尾
    json 添加 和删除两种方法
  • 原文地址:https://www.cnblogs.com/RivenLw/p/11260703.html
Copyright © 2011-2022 走看看