public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    public String solve (String s, String t) {
        // write code here
        if(s == null || s.length() == 0){
            return t;
        }
        if(t == null || t.length() == 0){
            return s;
        }
        //从尾部开始加,用StringBuilder记录结果
        StringBuilder sb = new StringBuilder();
        boolean isNeedAddOne = false;
        int maxLen = Math.max(s.length(),t.length());
        for(int i = 0;i<maxLen;i++){
            //从尾部取出对应位置
            int sIndex = s.length() - 1 - i;
            int tIndex = t.length() - 1 - i;
            int ns = 0;
            int nt = 0;
            if(sIndex >= 0){
                ns = (int)(s.charAt(sIndex) - '0');
            }
            if(tIndex >= 0){
                nt = (int)(t.charAt(tIndex) - '0');
            }
            int count = ns + nt;
            if(isNeedAddOne){
                count += 1;
                isNeedAddOne = false;
            }
            if(count >= 10){
                isNeedAddOne = true;
                sb.insert(0,count % 10 + "");
            } else {
                sb.insert(0,count + "");
            }
        }
        if(isNeedAddOne){
            sb.insert(0,"1");
        }
        return sb.toString();
    }
}