//
// Created by Mr.Hu on 2018/6/15.
//
// leetcode 415 add strings
//
// 题目要求对两个只包含0-9数字的字符串进行相加操作,即大数加法。
// 题目要求不能否使用自带的大数加法库和将string转换为int的方式来进行计算。
//
// 所以就用最原始的两个数相加,先低位再高位,同时判断进位的方式来coding,
// 这个思想比较简单,主要是要细心,我就是不细心导致提交了两三次才accetped。
// 主要思想就是从每个string的最高位,即数字的最低位开始做加法,对应位置相加,同时判断是否大于10来决定进位项tmp的取值。
// 对应位置相加完之后,则需要判断是否又string没有加完,因为上一步的对应位置加法操作只能将较小位数的那个string遍历完,
// 所以需要对是否又剩下位数进行判断,而且最多只有一个数存在这种情况,如果存在这种情况,则不能简单的使用substr的方式,因为
// 之前的加法可能存在进位。再剩下的部分遍历完之后,最后还需要判断是否存在进位,存在则需要在最终的结果前面加上1,最后输出结果。
// 但是这种方法的执行效率似乎不高,只超过百分之二十几的accepted solution
//
// 第二种方法的代码更简洁,将我上述的操作放在一个for循环中全部执行,每次两个string是否遍历完,同时是否还存在进位项,只要满足一个,
// 就进入for循环中。这种代码结构的执行时间也只超过了百分之二十八的accepted solution
//
1 |
|