问题描述:
代码:
class Solution {
public boolean wordPattern(String pattern, String s) {
char []p=pattern.toCharArray();
Map<String,Character> hx = new HashMap<>();
String[] arr = s.split(" ");
if(p.length!=arr.length)
return false;
for(int i=0;i<p.length;i++){
if(!hx.containsKey(arr[i])){
if(!hx.containsValue(p[i])){
hx.put(arr[i],p[i]);
}else{
if(hx.containsValue(p[i])){
return false;
}
}
}else{
if(p[i]!=hx.get(arr[i]))
return false;
}
}
return true;
}
}
思路:
String[] arr = s.split(" "); 根据空格来分割字符串
哈希containsValues
HashMap yyds!
问题描述:
代码:
class Solution {
public List<Integer> partitionLabels(String s) {
int n=s.length();
int []ans=new int[26];
for (int i = 0; i < n; i++) {
ans[s.charAt(i) - 'a'] = i;
}
int start = 0, end = 0;
List<Integer> list = new LinkedList<>();
for (int i = 0; i < n; i++) {
end = Math.max(end, ans[s.charAt(i) - 'a']);
if (i == end) {
list.add(end - start + 1);
start = end + 1;
}
}
return list;
}
}
思路: