面试题五:字符串替换空格

对于字符数组,不同语言的处理方法不同,在C/C++中可以指向数组尾部的下一个单元,只要内存够允许下标越界,但是在java中,不予许因为java缺乏指针,所建立数组长度不可变。
C/C++
方法1:暴力法 O(n*n)
遍历数组,遇到空格则插入,其他的后移,继续遍历
方法2:先遍历空格数量,计算出总长度后,利用双指针从后面向前推,两个指针重叠即完成替换 O(n+n)
java
方法1:定义StringBuilder对象进行遍历追加,后再转成字符数组 O(n)
方法2: 遍历空格数量计算字符组长度,开辟新内存,再用双指针从头覆盖替换新空间 O(n)

posted @ 2020-03-29 14:16  浪波激泥  阅读(170)  评论(0编辑  收藏  举报