一、字符串相加
利用字符串进行大数相加,确定一个进位标记来进行相加,字符串相加,链表相加和二进制相加都可以套用这种类型
public String addStrings(String num1, String num2) {
StringBuffer sb=new StringBuffer();
int carry=0;
int i=num1.length()-1;
int j=num2.length()-1;
while(i>=0||j>=0||carry!=0){
if(i>=0){
carry+=num1.charAt(i)-'0';
i--;
}
if(j>=0){
carry+=num2.charAt(j)-'0';
j--;
}
sb.append(carry%10);
carry/=10;
}
return sb.reverse().toString();
}
二、最长回文串
leetcode 409 题
这道题是构建一个最长的回文串,就是将偶数出现次数相加,最后加上一
public int longestPalindrome(String s) {
//利用数组来纪录元素出现的次数
// 最后一个小写 字母为122 -65 需要58个位
int []ret=new int[58];
for(int num:s.toCharArray()){
ret[num-'A']++;
}
int res=0;
for(int