leetcode242~Valid Anagram
来源:互联网 发布:pdf.js如何使用 编辑:程序博客网 时间:2024/04/30 20:40
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 class ValidAnagram { //map集合记录键(字符)和对应出现的次数 public boolean isAnagram2(String s,String t) { Map<Character,Integer> map = new HashMap<>(); if(s.length()!=t.length()) return false; for(int i=0;i<s.length();i++) { if(map.containsKey(s.charAt(i))) { map.put(s.charAt(i), map.get(s.charAt(i))+1); } else { map.put(s.charAt(i), 1); } } for(int i=0;i<t.length();i++) { if(map.containsKey(t.charAt(i))&&map.get(t.charAt(i))>0) { map.put(t.charAt(i), map.get(t.charAt(i))-1); } else { return false; } } return true; } //使用哈希表记录一个单词中字母出现的个数,再遍历第二个 单词,减去相应的字母出现的次数。如果某个字母的计数不为0,则说明出现次数不一样。 public boolean isAnagram(String s,String t) { int[] nums = new int[26]; //这里假设只有英文字母 for(int i=0;i<s.length();i++) { nums[s.charAt(i)-'a']++; } for(int i=0;i<t.length();i++) { nums[t.charAt(i)-'a']--; } for(int i=0;i<nums.length;i++) { if(nums[i]!=0) return false; } return true; }}
0 0
- Leetcode242. Valid Anagram
- leetcode242: Valid Anagram
- Leetcode242. Valid Anagram
- LeetCode242 Valid Anagram
- leetcode242~Valid Anagram
- leetcode242. Valid Anagram
- LeetCode242——Valid Anagram
- leetcode242---Valid Anagram(判断两字符串是否为变位词)
- Valid Anagram
- Valid Anagram
- Valid Anagram
- Valid Anagram
- Valid Anagram
- Valid Anagram
- Valid Anagram
- Valid Anagram
- Valid Anagram
- Valid Anagram
- AndroidAOP之路二 注解处理解释器
- CTF-实验吧-Flash14
- 《程序是怎样跑起来的》读书笔记
- 玲珑杯round#11 ----A
- java安全架构____证书类型转换
- leetcode242~Valid Anagram
- Cocos2d-x从C++端调用Android端的非静态函数接口
- JavaScript—用闭包模拟私有方法
- SPOJ
- 在HTML页面中显示html代码
- Android业务组件化之Gradle和Sonatype Nexus搭建私有maven仓库
- 算法训练 s01串
- 蓝桥杯真题——黄金分割数
- Lost connection to MySQL server at ‘reading initial communication packet', system error: 0 mysql远程连接