zoukankan      html  css  js  c++  java
  • [LintCode] Two Strings Are Anagrams

    Write a method anagram(s,t) to decide if two strings are anagrams or not.

    Clarification

    What is Anagram?
    - Two strings are anagram if they can be the same after change the order of characters.

    Example

    Given s = "abcd", t = "dcab", return true.
    Given s = "ab", t = "ab", return true.
    Given s = "ab", t = "ac", return false.

    Challenge 

    O(n) time, O(1) extra space

    Solution: 

    This problem is very simple with hash maps. Store all characters and their frequencies from s, then check if t has exactly the same character set with 

    the same frequencies for each character.

     1 public class Solution {
     2     public boolean anagram(String s, String t) {
     3         if(s == null || t == null || s.length() != s.length()){
     4             return false;
     5         }
     6         int[] chars = new int[256];
     7         for(int i = 0; i < s.length(); i++){
     8             chars[s.charAt(i)]++;
     9         }
    10         for(int i = 0; i < t.length(); i++){
    11             if(chars[t.charAt(i)] == 0){
    12                 return false;
    13             }
    14             else{
    15                 chars[t.charAt(i)]--;
    16             }
    17         }
    18         return true;
    19     }
    20 }
  • 相关阅读:
    二项式反演
    快速沃尔什变换
    springMVC的form标签
    springMVC的拦截器配置
    RESTful使用方法
    springMVC数据绑定
    使用spring框架自带的字符拦截器
    将idea中的项目上传至github
    springMVC的使用方式
    springMVC的概述
  • 原文地址:https://www.cnblogs.com/lz87/p/6947755.html
Copyright © 2011-2022 走看看