leetcode面试准备:Valid Anagram
2024-10-11 12:50:49
leetcode面试准备:Valid Anagram
1 题目
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.
接口: public boolean isAnagram(String s, String t)
2 思路
题意
对比两个字符串是否是一样的。
解
HashMap思想存储字符,字符串s
往map里面存储,字符串t
往map里面取。最后看map
是否为空:if 空,true
.
复杂度: Time: O(n) , Space:O(26)
3 代码
public boolean isAnagram(String s, String t) {
Map<Character, Integer> smap = new HashMap<Character, Integer>();
int slen = s.length();
int tlen = t.length();
if (slen != tlen)
return false;
for (int i = 0; i < slen; i++) {
Character c = s.charAt(i);
if (smap.containsKey(c)) {
int count = smap.get(c);
count++;
smap.put(c, count);
} else {
smap.put(c,1);
}
}
for (int i = 0; i < tlen; i++) {
Character c = t.charAt(i);
if (smap.containsKey(c)) {
int count = smap.get(c);
count--;
if(count == 0) {
smap.remove(c);
} else {
smap.put(c, count);
}
} else {
return false;
}
}
return smap.isEmpty();
}
4 总结
HashMap思想。
最新文章
- 异步IO比同步阻塞IO性能更好吗?为什么?
- Ubuntu 16.04安装QQ国际版图文详细教程
- XproerIM-V1,2,12,65475发布。
- win10下LPT并口打印失败和POS打印机的钱箱不能打开,win10的坑
- ubuntu vnc install
- Almeza MultiSet Pro(批量安装程序) V8.7.6中文特别版
- 菜鸟学SSH(十八)——Hibernate动态模型+JRebel实现动态创建表
- JavaScript中null和undefined的总结
- CSS3+HTML5特效9 - 简单的时钟
- 图像切换器(ImageSwitcer)的功能与用法
- js观察者模式与Model
- FB面经Prepare: Bipartite a graph
- 【转载】Java与C++语言在作用域上的差异浅析
- C语言:指针实现输出梯形字符串
- asp.net 一般处理程序接收上传文件的问题
- Struts2 (四) — 拦截器
- 跟着百度学PHP[10]-读取COOKIE案例
- django 后台格式化数据库查询出的日期
- CSS3不遥远,几个特性你要知道
- Swing:LookAndFeel 教程第一篇——手把手教你写出自己的 LookAndFeel