class Solution {
public boolean wordBreak(String s, List<String> wordDict) {
boolean dp[] = new boolean[s.length()+1];
dp[0] = true;
for(int i=1; i<=s.length();i++){
for(int j=0;j<i;j++){
if(wordDict.contains(s.substring(j,i)) && dp[j]){
dp[i] = true;
break;
}
}
}
return dp[s.length()];
}
}
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
if(headA == null || headB == null) {
return null;
}
int lenA = 0;
int lenB = 0;
ListNode tempA = headA;
ListNode tempB = headB;
//获得长度
while(tempA != null){
lenA++;
tempA = tempA.next;
}
while(tempB != null){
lenB++;
tempB = tempB.next;
}
tempA = headA;
tempB = headB;
if(lenA > lenB){
for(int i = 0 ; i < lenA-lenB;i++){
tempA = tempA.next;
}
}else{
for(int i = 0 ; i < lenB-lenA;i++){
tempB = tempB.next;
}
lenB = lenA;
}
//开始对比
while(tempA != null && tempB != null){
if(tempA != tempB){
tempA = tempA.next;
tempB = tempB.next;
}else{
return tempA;
}
}
return null;
}
}
class Solution {
public int singleNumber(int[] nums) {
int result = 0;
for(int a : nums){
result ^= a;
}
return result;
}
}