zoukankan      html  css  js  c++  java
  • LeetCode_242. Valid Anagram

    242. Valid Anagram

    Easy

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

    Example 1:

    Input: s = "anagram", t = "nagaram"
    Output: true
    

    Example 2:

    Input: s = "rat", t = "car"
    Output: false
    

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

    Follow up:
    What if the inputs contain unicode characters? How would you adapt your solution to such case?

    package leetcode.easy;
    
    public class ValidAnagram {
    	public boolean isAnagram1(String s, String t) {
    		if (s.length() != t.length()) {
    			return false;
    		}
    		char[] str1 = s.toCharArray();
    		char[] str2 = t.toCharArray();
    		java.util.Arrays.sort(str1);
    		java.util.Arrays.sort(str2);
    		return java.util.Arrays.equals(str1, str2);
    	}
    
    	public boolean isAnagram21(String s, String t) {
    		if (s.length() != t.length()) {
    			return false;
    		}
    		int[] counter = new int[26];
    		for (int i = 0; i < s.length(); i++) {
    			counter[s.charAt(i) - 'a']++;
    			counter[t.charAt(i) - 'a']--;
    		}
    		for (int count : counter) {
    			if (count != 0) {
    				return false;
    			}
    		}
    		return true;
    	}
    
    	public boolean isAnagram22(String s, String t) {
    		if (s.length() != t.length()) {
    			return false;
    		}
    		int[] table = new int[26];
    		for (int i = 0; i < s.length(); i++) {
    			table[s.charAt(i) - 'a']++;
    		}
    		for (int i = 0; i < t.length(); i++) {
    			table[t.charAt(i) - 'a']--;
    			if (table[t.charAt(i) - 'a'] < 0) {
    				return false;
    			}
    		}
    		return true;
    	}
    
    	@org.junit.Test
    	public void test() {
    		String s1 = "anagram";
    		String t1 = "nagaram";
    		String s2 = "rat";
    		String t2 = "car";
    		System.out.println(isAnagram1(s1, t1));
    		System.out.println(isAnagram1(s2, t2));
    		System.out.println(isAnagram21(s1, t1));
    		System.out.println(isAnagram21(s2, t2));
    		System.out.println(isAnagram22(s1, t1));
    		System.out.println(isAnagram22(s2, t2));
    	}
    }
    
  • 相关阅读:
    LR问题集锦(二)
    报错“you do not have a license for this Vuser type”
    LoadRunner:Error 10344
    loadrunner 录制脚本后登陆用户名是乱码
    经典语句
    jprofiler
    数据类测试的一些方法
    中文页面显示和英文页面显示,不一样的语言显示,会对性能有影响哇
    LoadRunner问题集锦
    用loadrunner做压力测试,怎样把应用服务器压死
  • 原文地址:https://www.cnblogs.com/denggelin/p/11759101.html
Copyright © 2011-2022 走看看