题目描述:
代码:
class Solution {
public int firstUniqChar(String s) {
Map<Character,Integer> hx=new HashMap<Character,Integer>();
char []ans=s.toCharArray();
int count=0;
for(int i=0;i<ans.length;i++){
count=hx.getOrDefault(ans[i],0)+1;
hx.put(ans[i],count);
}
for(int j=0;j<ans.length;j++){
if(hx.get(ans[j])==1)
return j;
}
return -1;
}
}
思路:
getOrDefault()方法
问题描述:
代码:
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
Map<Character,Integer> hx = new HashMap<Character,Integer>();
char []s1=ransomNote.toCharArray();
char []s2=magazine.toCharArray();
for(int i=0;i<s2.length;i++){
int count=hx.getOrDefault(s2[i],0)+1;
hx.put(s2[i],count);
}
for(int j=0;j<s1.length;j++){
if(!hx.containsKey(s1[j]))
{
return false;
}
else{
int c=hx.get(s1[j]);
c--;
if(c>0)
{
hx.put(s1[j],c);
}else{
hx.remove(s1[j]);
}
}
}
return true;
}
}
思路:
getOrDefault()方法
问题描述:
代码:
class Solution {
public boolean isAnagram(String s, String t) {
char []s1=s.toCharArray();
char []s2=t.toCharArray();
int []countS1 = new int [26];
int []countS2 = new int [26];
for(char c:s1){
countS1[c-'a']++;
}
for(char c:s2){
countS2[c-'a']++;
}
for(int i=0;i<26;i++){
if(countS1[i]!=countS2[i]){
return false;
}
}
return true;
}
}
思路:
用int数组来统计每个单词出现的次数 然后对比