题目链接:
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
题目:
给你一个用字符串表示的正整数
num
,请你以字符串形式返回不含尾随零的整数num
。示例 1:
输入:num = "51230100" 输出:"512301" 解释:整数 "51230100" 有 2 个尾随零,移除并返回整数 "512301" 。示例 2:
输入:num = "123" 输出:"123" 解释:整数 "123" 不含尾随零,返回整数 "123" 。提示:
1 <= num.length <= 1000
num
仅由数字0
到9
组成num
不含前导零
个人思路:
通过从字符串尾部进行遍历寻找非零值的字符及下标值,当为非零值时跳出循环利用erase((下表值+1))将非零值后的零值进行删除操作。注:II--条件必须放在while()后,及当判断为零值才进行操着Ii--,如果放在while()括号中则无论条件是否符合都会进行Ii--的操作。
代码:
class Solution {
public:
string removeTrailingZeros(string num) {
int Ii=num.size()-1;//获取尾部下标值
while(num[Ii]=='0')Ii--;//尾部遍历寻找非零值,先判断符合后才进行下表移位操作避免多操作
num.erase((Ii+1));//将非零之后的零值减去,括号内输入的时索引(索引==下表值+1),之后的值进行删除操作
return num;
}
};