<?php /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ function solve( $s , $t ) { $arrS = str_split($s); $arrT = str_split($t); $tmp = 0; if(count($arrS)>=count($arrT)){ $longArr = $arrS; $smallArr = $arrT; }else{ $longArr = $arrT; $smallArr = $arrS; } $longArr = array_reverse($longArr); $smallArr = array_reverse($smallArr); $tmp = 0; foreach($longArr as $k =>$v){ if(isset($smallArr[$k])){ $longArr[$k] = $longArr[$k] + $smallArr[$k] +$tmp; }else{ $longArr[$k] = $longArr[$k] + $tmp; } if($longArr[$k] >=10){ $longArr[$k] = $longArr[$k]-10; $tmp = 1; }else{ $tmp = 0; } } if($tmp != 0 ){ $longArr[]= 1; } $longArr = array_reverse($longArr); $longArr = implode($longArr); return $longArr; // write code here } print_r(solve(733064366,459309139));
1.转换成数组
2.反转数组
3.根据位数排序,以长的为主体循环,长度相等时任意
4.主体+另一数组同为+缓存,判断和>=10减一,存缓存,反之清除缓存
5.循环结束后,判断缓存是否存在,存在时尾部插入1
6.反转数组,转换为字符串