leetcode 2710 题解
其实这题是比较简单的,但是太久没写代码了,居然写了几分钟
题目
给你一个用字符串表示的正整数 num ,请你以字符串形式返回不含尾随零的整数 num 。
示例 1:
输入:num = “51230100”
输出:”512301”
解释:整数 “51230100” 有 2 个尾随零,移除并返回整数 “512301” 。
示例 2:
输入:num = “123”
输出:”123”
解释:整数 “123” 不含尾随零,返回整数 “123” 。
提示:
1 <= num.length <= 1000
num 仅由数字 0 到 9 组成
num 不含前导零
思路
从最后一位往前读入字符串,然后判断是不是0,到不是0的那一位就开始记录。
注意
- 主要是从后往前读入字符串的时候,起始位置(
num.length())要注意减1,循环时,标识符要到0。
- 用于截断string类型的
substr函数。
示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class Solution { public: string removeTrailingZeros(string num) { int shuzu[1001], t=0; bool check = false; for (int i = num.length() - 1; i >= 0; i--) { int temp = num[i] - '0'; if (check == false && temp != 0) check = true; if (check) { shuzu[t]=temp; t++; } } string new_String = ""; for (int i = t-1; i >= 0 ; i--) { char temp = shuzu[i] + '0'; string tempstr = ""; new_String += temp; } return new_String; } };
|
1 2 3 4 5 6 7 8 9
| class Solution { public: string removeTrailingZeros(string num) { int pos = num.length( ); pos-- ; while( pos >= 0 && num[pos] == '0' ) pos--; return num.substr( 0 , pos + 1 ); } };
|