package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 计算两个数之和
 * @param s string字符串 表示第一个整数
 * @param t string字符串 表示第二个整数
 * @return string字符串
 */
func solve(s string, t string) string {
	bs1 := []byte(s)
	bs2 := []byte(t)
	reversal(bs1)
	reversal(bs2)
	i1 := 0
	i2 := 0
	var tmp byte = '0'
	res := []byte{}
	for i1 < len(bs1) && i2 < len(bs2) {
		num := (bs1[i1] - '0') + (bs2[i2] - '0') + (tmp - '0')
		if num >= 10 {
			tmp = '1'
		} else {
			tmp = '0'
		}
		res = append(res, num%10+'0')
		i1++
		i2++
	}
	if i1 < len(bs1) {
		for i := i1; i < len(bs1); i++ {
			num := (bs1[i] - '0') + (tmp - '0')
			if num >= 10 {
				tmp = '1'
			} else {
				tmp = '0'
			}
			res = append(res, num%10+'0')
		}
	}
	if i2 < len(bs2) {
        for i := i2; i < len(bs2); i++ {
			num := (bs2[i] - '0') + (tmp - '0')
			if num >= 10 {
				tmp = '1'
			} else {
				tmp = '0'
			}
			res = append(res, num%10+'0')
		}
	}
	if tmp == '1' {
		res = append(res, tmp)
	}
	reversal(res)
	return string(res)
}

func reversal(bs []byte) {
	mid := len(bs) / 2
	for i := 0; i < mid; i++ {
		bs[i], bs[len(bs)-1-i] = bs[len(bs)-1-i], bs[i]
	}
}