LeetCode-Valid Anagram
2015-10-21 21:18
357 查看
Problem:
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.
Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?
Analysis:
这个题的难度本身不大,但是做的非常痛苦,主要是对java的一些函数及语法不熟悉。
Anwser1:
Anwser2:
方法2用的方法是将字符串变成数组后用数组自带的排序函数进行排序,然后将字符串函数valueOf()将数组转换为字符串用equals()函数进行比较。其实用不着最后一步数组转换成字符串,因为数组也可以用equals()进行比较。如下:
Anwser3:
做这道题需要注意几点:
1 字符串的toCharArray()转换为char型数组;
2 Arrays的函数引用时,Arrays中的s不要忘记;
3 字符串的函数charAt()可以找到字符串中的某一个;
4 字符串的函数length(),用的时候不要丢了括号。
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.
Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?
Analysis:
这个题的难度本身不大,但是做的非常痛苦,主要是对java的一些函数及语法不熟悉。
Anwser1:
public class Solution { public boolean isAnagram(String s, String t) { if(s==t && s=="") return true; else if (s=="" || t=="" || s.length()!=t.length()) return false; else{ int[] charnum = new int[26]; char c; int temp; for(int i=0;i<s.length();i++){ c=s.charAt(i); temp =c-'a'; charnum[temp]++; } for(int j=0;j<t.length();j++){ c=t.charAt(j); if(charnum[c-'a']<=0) return false; else charnum[c-'a']--; } return true; } } }
Anwser2:
public class Solution { public boolean isAnagram(String s, String t) { char [] a =s.toCharArray(); char [] b =t.toCharArray(); Arrays.sort(a);Arrays.sort(b); if(String.valueOf(a).equals(String.valueOf(b))) return true; else return false; } }
方法2用的方法是将字符串变成数组后用数组自带的排序函数进行排序,然后将字符串函数valueOf()将数组转换为字符串用equals()函数进行比较。其实用不着最后一步数组转换成字符串,因为数组也可以用equals()进行比较。如下:
Anwser3:
public class Solution { public boolean isAnagram(String s, String t) { char[] char1=s.toCharArray(); char[] char2=t.toCharArray(); Arrays.sort(char1); Arrays.sort(char2); return Arrays.equals(char1,char2); } }
做这道题需要注意几点:
1 字符串的toCharArray()转换为char型数组;
2 Arrays的函数引用时,Arrays中的s不要忘记;
3 字符串的函数charAt()可以找到字符串中的某一个;
4 字符串的函数length(),用的时候不要丢了括号。
相关文章推荐
- HDU 2087 - 剪花布条(kmp)
- 启动另一个 Activity
- 015.三元表达式与if条件句
- 第 三 十 七 天:RAID 简 介 与 查 看
- CentOS 已经 12 岁了
- #define跟const的区别
- 安卓面试题
- 最近几个月的境况,记录一下,以便后续反省
- Linux Introduction && Commands
- C语言:一个球从 100 米落下,每次落地后反跳回原一半,再落下,再反弹。求第10次高度?sum?
- 机器学习实战决策树的java实现
- 【二维线段树】hdu 4819 Mosaic
- hdu1847 Good Luck in CET-4 Everybody!
- 句柄
- Python的在线编辑环境
- Python -- 闭包
- property 与 attribute 的区别?
- C++ const 限定符
- android studio关于隐藏标题栏崩溃问题
- Linux下OpenSSL 安装详解 +图解