zoukankan      html  css  js  c++  java
  • LeetCode -- Valid Anagram

    Given two strings s and t, write a function to determine if t is an anagram of s.

    For example,
    s = "anagram", t = "nagaram", return true.
    s = "rat", t = "car", return false.

    Note:
    You may assume the string contains only lowercase alphabets.

    描述:Anagram是指对单词中的字母重新排列形成新的单词(详见wikipediahttps://en.wikipedia.org/wiki/Anagram)。给出两个字符串,判断两者是否相似。主要看两个字符串是否长度相等,是否出现的是同样字符,并且相同字符出现次数相同。

    解决:首先判断两个字符是否为空;长度是否相同;长度是否为0;然后用java中HashMap数据结构,首先遍历字符串s,纪录出现过的字符和字符出现的次数,然后遍历字符串t,若出现了s中没有出现过的字符,则直接返回false;若目前字符是在s中出现过的,则只需将map中纪录的value值-1,最后有value不为1者,返回false否则返回true。

    Answer:

     public  boolean isAnagram(String s, String t) {
             if(s==null && t==null)
                 return true;
             if(s.length() != t.length())
                 return false;
             if(s.length()==0 && t.length()==0)
                 return true;
             
             HashMap<Character, Integer> map = new HashMap<Character, Integer>();
             for(int i=0; i<s.length(); i++){
                      if(!map.containsKey(s.charAt(i))){
                          map.put(s.charAt(i), 1);
                      } else {
                          int v = map.get(s.charAt(i));
                          map.put(s.charAt(i), v+1);
                      }     
             }
             
             for(int i=0; i<t.length(); i++){
                      if(!map.containsKey(t.charAt(i)))
                          return false;
                      else {
                          int v = map.get(t.charAt(i));
                          map.put(t.charAt(i), v-1);
                      }
             }
             
             Iterator iter = map.entrySet().iterator();
             while(iter.hasNext()){
                     Map.Entry entry = (Map.Entry) iter.next();
                     if((int) entry.getValue() != 0)
                         return false;
             }
             
             return true;
             
         }
        
  • 相关阅读:
    Web应用Word生成
    记 Ubuntu14.04 Monodevelop 安装的两个问题
    CSDN上下载的一些关于Android程序调用Webservice执行不成功的问题
    Binary Search Tree Iterator
    算法之贪心算法
    《SAS编程与数据挖掘商业案例》学习笔记之十七
    数据库设计之半结构化存储
    Timus 1446. Sorting Hat 分类问题
    WebGL on iOS8 最终等到了这一天
    仿netty线程池简化版本
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/4782885.html
Copyright © 2011-2022 走看看