知识点
字符串
解题思路
从后往前遍历字符串a和b
用一个carry记录每次遍历a减b时当a小于b时需要的借位,每次a都要先加上carry再去减b,如果减不够就需要先上借位,让caryy为-1,否则carry置为0。最后将添加的字符串反转返回。
Java题解
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param a string字符串
* @param b string字符串
* @return string字符串
*/
public String subtractTernary (String a, String b) {
// write code here
int carry = 0;
int n = a.length() - 1,m = b.length() - 1;
StringBuilder sb = new StringBuilder();
while(n >= 0 || m >= 0){
int num1 = 0, num2 = 0;
num1 = a.charAt(n) - '0';
if(m >= 0){
num2 = b.charAt(m) - '0';
}
n --; m --;
num1 += carry;
if(num1 < num2){
num1 += 3;
carry = -1;
} else {
carry = 0;
}
sb.append(num1 - num2);
}
sb.reverse();
return sb.toString();
}
}



京公网安备 11010502036488号