Leetcode——valid Anagram——时间复杂度太高,怎么办??
2016-01-10 16:06
267 查看
242. Valid Anagram
Total Accepted: 49956 TotalSubmissions: 125369 Difficulty: Easy
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.
大致题意是说,如何判断两个字符串只是顺序的变换。若是,则返回true;反之,返回false
我写的代码如下:
public class Solution { public boolean isAnagram(String s, String t) { if(s.length()!=t.length()) return false; for(int i = 0; i<s.length(); i++){ for(int j =0; j<t.length();j++){ if(s.charAt(i)==t.charAt(j)){ if(charNum(s,s.charAt(i))!=charNum(t,t.charAt(j))){ return false; } } } } return true; } public static int charNum(String s, char c){ int Num =0; for(int i = 0; i < s.length(); i++){ if(s.charAt(i)==c){ Num++; } } return Num; } }提交后显示,“Time Limit Exceeded”
所以如何解决这个问题??!!我也感觉写的是有些复杂了。毕竟如果一个字符串中的每个字符的数目都要计算一次,这样的话肯定很
耽误时间。如果是同样的字符计算一次就可以了。
上面的方法太麻烦,只需要定义一个长度为26的数组就可以啦,以空间来换时间!
相关文章推荐
- 总结2015
- Java的安装和下载
- 使用jQuery读取XML文件数据
- Linux基础
- 194,重用UITableViewCell对象,提高性能
- Leetcode——valid Anagram——时间复杂度太高,怎么办??
- [AngularJS] Using AngularJS's ngClass
- python解析网页中javascript动态添加的内容
- tomcat+nginx+memchaed+myeclipse2014
- Jetty9+JDK8+Spring4时遇到408问题
- Mac环境下终端(Terminal)用ssh 连接服务器问题 Received disconnect from 120.55.x.x: 2: Too many authentication failures for root
- [leetcode oj 235]Lowest Common Ancestor of a Binary Search Tree
- 利用css3伪类实现边框环绕效果
- ubantu下安装hadoop+hive全解
- Android点击Button水波纹效果
- NSArray,NSMutableArray的三种排序
- 最长回文子串
- 代码与人生
- Linux setup 安装命令
- log4cxx入门第一篇--一个小例子