原题链接:点我跳转
此题思维难度不大,考察选手对于细节的把控。
本题分为四种情况:
-
整数
-
浮点数
-
分数
-
百分数
看似情况很多,实则需要做的操作是一样的。都是 反转 + 去掉前导0 + 可能的要去掉中间的0 + 可能的要去掉后缀0
反转使用双指针,交换 s[i] 与 s[j] 的值即可。其中,
1
≤
i
<
j
≤
N
1leq i< jleq N
1≤i 换种思路,去掉前导
0
0
0 也可以从第一个不为
0
0
0 的地方开始输出。 这里使用一种暴力的方法,就是把中间的 0 换成空格,最后不输出空格即可。 从后向前遍历,找到第一个不为零的地址,把它的下一个值标记为结束符。 这样,就大致梳理好了思路,即可快乐地写代码了。 其实用 string 应该会更简单亿点,直接 stringstream。
写完题解才发现这种方法挺麻烦的。不要问我为什么不用 string,写 char 数组写习惯了。#include
但些都写完了就懒得再写其他方法了。



