当前位置: 面试刷题>> 加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"
```
希望这些示例和代码能够帮到你!如果想了解更多相关内容,可以访问码小课网站。