日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

剑指offer-3(替换空格)

發布時間:2023/12/2 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 剑指offer-3(替换空格) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:

實現一個方法,把一個字符數組里面的空格全部替換為“20%”。

?

思路:

首先呢,要先獲取字符數組中有多少個空格以及字符數組中字符的長度,計算出替換后的長度;然后,讓一個虛擬指針indexOfNew指想新長度大小的那個下標位置,讓另一個虛擬指針indexOfOriginal指向原字符長度大小的那個下表位置,判斷indexOfOriginal下表位置的是不是為空格,如果是,indexOfNew下表位置以及前面兩個位置依次放入0,2,%;indexOfOriginal前移。繼續判斷;如果不是空格,直接把indexOfOriginal處的字符放到indexOfNew下表位置。

?

代碼:

public class Test04 {/** length為字符數組的總容量*/public static void replaceBlank(char[] string,int length){if(string ==null || length<1){return;}int originalLength = 0;//字符的實際長度int blankLength = 0;//空格的個數int i = 0;while(i < length && string[i] != '\u0000'){++originalLength;if(string[i]==' '){++blankLength;}i++;}//新的長度為字符長度加上空格個數乘以2,本來是20%三個字符,因為還要去一個空格,相當于每遇到一個空格,長度就需要增加兩個int newLength = originalLength + blankLength * 2;if(newLength > length)return;int indexOfOriginal = originalLength;int indexOfNew = newLength;while(indexOfOriginal >= 0 && indexOfNew > indexOfOriginal){if(string[indexOfOriginal] == ' '){string[indexOfNew--] = '0';string[indexOfNew--] = '2';string[indexOfNew--] = '%';}else{string[indexOfNew--] = string[indexOfOriginal];}--indexOfOriginal;}for (int j = 0;j<newLength;j++) {System.out.print(string[j]);}}public static void main(String[] args) {char[] str = new char[20];str[0] = 'h';str[1] = 'e';str[2] = 'l';str[3] = 'l';str[4] = 'o';str[5] = ' ';str[6] = 'w';str[7] = ' ';replaceBlank(str,str.length);}}

?

轉載于:https://www.cnblogs.com/javatalk/p/10129516.html

總結

以上是生活随笔為你收集整理的剑指offer-3(替换空格)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。