还是回到上次说的,我的思路是,通过去除首位字符0,中间部分0采用递增扫描截取的方式,碰到一个0,截取拼接字符后,然后重新扫描(如果字符串数量大,中间位0多,可能计算机耗时会较长)。
我的代码如下:
运行结果:
在计算过程中,其实我一开始对function没有声明动态函数,但是在测试时候输入全是0的字符串,会造成s2输出上一个124134的结果,可能是由于function是寄存器类型,而且如果全是字符串0的话,S_0在function函数中没有改变,会返回之前s1输出的结果,因此为避免这个问题,我把function声明成了动态函数。
下面是我一个好兄弟的思路,我觉得还不错,就是声明一个动态数组,然后去直接扫描字符串,把字符串所有的0的位置记录下放进动态数组里,然后修改字符串。从计算机的角度来看,这个方法比扫描0然后拼接,再重新扫描方法节约计算运行时间。
下面是他的代码:
运行结果:
不错的思路,值得学习。