这题前导0-如何处理?

P1106 删数问题

0前面保留最小的数
by xzx666666 @ 2024-02-03 14:45:54


你可以看一下的方法: ``` cin >> s >> k; memset(a,-1,sizeof(a)); ch = s[coconut]; while(coconut < s.length()) { coconut += 1; a[++n] = ch - '0'; if(a[n] == 0) { a[n] = -1; } ch = s[coconut]; } ```
by AnnaQ @ 2024-02-16 12:49:30


@[AnnaQ](/user/959411) 发错了是这个: ```cpp while(a[m - 1] == -1 && a[m] == -1) { m += 1; } ``` 如果要在删完数后去除前导0的话,那可以参考这个: ```cpp while(a[m - 1] == -1 && a[m] == -1 && m + 1 < m) { m += 1; } ```
by AnnaQ @ 2024-02-16 13:40:57


@[AnnaQ](/user/959411) 又发错了。。。要在删完数后去除前导0的代码是这个: ```cpp while(a[m - 1] == -1 && a[m] == 0 && m + 1 < n) { a[m] = -1; m += 1; } ```
by AnnaQ @ 2024-02-16 13:47:42


@[AnnaQ](/user/959411) 然后在把 ```cpp m + 1 < n ``` 改为 ```cpp m + 1 <= n ``` 就行了
by AnnaQ @ 2024-02-16 13:53:50


额,你别按我的了,我刚刚测试了一下,压根儿就去不掉。。
by AnnaQ @ 2024-02-16 14:36:37


while(i<l && a[i]=='0'){ i++; }
by jiangbaolin @ 2024-03-28 09:59:16


|