当前位置: 面试刷题>> 加1 (经典算法题500道)


### 题目描述补充 **题目:加1(数字字符串转换)** 给定一个表示非负整数的字符串(数字可能很大,以字符串形式给出),请将这个字符串表示的整数加1,并返回结果作为字符串。 **注意**: - 输入的字符串不会以0开头,除非该字符串是"0"。 - 输入只包含数字字符。 ### 示例 **输入**: "123" **输出**: "124" **输入**: "999" **输出**: "1000" **输入**: "0" **输出**: "1" ### PHP 代码示例 ```php function plusOne($digits) { $n = strlen($digits); $carry = 1; // 初始进位为1 $result = ''; for ($i = $n - 1; $i >= 0; $i--) { $sum = intval($digits[$i]) + $carry; // 当前位与进位相加 $result = strval($sum % 10) . $result; // 取个位数添加到结果字符串的前面 $carry = floor($sum / 10); // 更新进位 } if ($carry > 0) { $result = strval($carry) . $result; // 如果最高位有进位,则将其添加到结果字符串的前面 } return $result; } // 测试示例 echo plusOne("123"); // 输出 "124" echo plusOne("999"); // 输出 "1000" echo plusOne("0"); // 输出 "1" ``` ### Python 代码示例 ```python def plusOne(digits): carry = 1 result = [] for digit in reversed(digits): total = int(digit) + carry result.append(str(total % 10)) carry = total // 10 if carry > 0: result.append(str(carry)) return ''.join(reversed(result)) # 测试示例 print(plusOne("123")) # 输出 "124" print(plusOne("999")) # 输出 "1000" print(plusOne("0")) # 输出 "1" ``` ### JavaScript 代码示例 ```javascript function plusOne(digits) { let carry = 1; let result = []; for (let i = digits.length - 1; i >= 0; i--) { let sum = parseInt(digits[i]) + carry; result.unshift(sum % 10); // 在数组前端添加个位数 carry = Math.floor(sum / 10); } if (carry > 0) { result.unshift(carry); // 如果最高位有进位,则添加到数组前端 } return result.join(''); } // 测试示例 console.log(plusOne("123")); // 输出 "124" console.log(plusOne("999")); // 输出 "1000" console.log(plusOne("0")); // 输出 "1" ``` 希望这些示例和代码能够帮到你!如果想了解更多相关内容,可以访问码小课网站。
推荐面试题