1. 程式人生 > >牛客網劍指offer-02替換空格

牛客網劍指offer-02替換空格

請實現一個函式,將一個字串中的空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。
自己想了一下,感覺沒什麼思路,就暴力掃描一遍,遇到空格flag記下來,然後把原來的字串一個一個字元的貼上去,看C++程式碼

class Solution {
public:
    void replaceSpace(char *str,int length) {
    bool flag[1000001];
    memset(flag,0,sizeof(flag));
    for(int i=0;i<length;i++)
        if
(str[i]==' ') flag[i]=1; char str2[1000001]; strcpy(str2,str); int fla=0; for(int i=0;i<length;i++){ if(!flag[i]) { str[fla]=str2[i]; fla++; } else { str[fla]='%'; fla++; str[fla]='2'
; fla++; str[fla]='0'; fla++; } } } };

如果用java應該很簡單,使用StringBuffer裡面的自帶函式可以實現。

public class Solution {
    public String replaceSpace(StringBuffer str) {
        if(str==null){
            return null;
        }
       StringBuilder newStr = new
StringBuilder(); for(int i=0;i<str.length();i++){ if(str.charAt(i)==' '){ newStr.append('%'); newStr.append('2'); newStr.append('0'); }else{ newStr.append(str.charAt(i)); } } return newStr.toString(); } }

相關推薦

offer-02替換空格

請實現一個函式,將一個字串中的空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。 自己想了一下,感覺沒什麼思路,就暴力掃描一遍,遇到空格flag記下來,然後把原來的字串一個一個字元的貼上去,

-Offer-替換空格

請實現一個函式,將一個字串中的空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。完整程式碼如下:public class Solution { public static void main(String[] args) { // TO

offer-Java

port 倒數 als log 信息 true 數組 rom ear (1)輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,

Offer習題集題解0

覆蓋 file print mta 題解 -m urn 打表 劍指offer https://www.nowcoder.com/ta/coding-interviews 牛客個人界面歡迎互fo 0x00 二維數組中的查找 沒啥難得,直接上二分就好了。註意二分別寫挫了。 時間

Offer C++題解

【二維陣列中的查詢】:在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 class Solution { public: bool Find

----------offer----找數

在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。   public class Solution { public boolea

第一個只出現一次字元的位置 Offer

第一個只出現一次字元的位置  牛客網 劍指Offer 題目描述 在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回

-Offer-樹的子結構

題目連結:https://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88?tpId=13&tqId=11170&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-int

- offer - “樹的子結構”

題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; Tr

(Offer)線上程式設計-演算法

1、在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 public class Solution { public boolean

offer-把二叉樹列印成多行

題目描述從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。/* struct TreeNode { int val; struct TreeNode *left;

Offer 索引

二維陣列中的查詢 替換空格 從尾到頭列印連結串列 重建二叉樹 用兩個棧實現佇列 旋轉陣列的最小數字 斐波那契數列 跳臺階 變態跳臺階 矩形覆蓋 二進位制中1的個數 數值的整數次方 調整陣列順序使奇數位於偶數前面 連結串列中倒數第k個結點 反轉連結串列 合併兩個排序的

-offer-22-從上往下列印二叉樹

從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 二叉樹層序遍歷 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; /** public class TreeNode {     int

offer-01二維陣列的查詢

題目描述 在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 一上來就想到用二分,後來看了大神們的程式碼,覺得自己還是太菜了。 只要從左下

offer-機器人的運動範圍

題目描述地上有一個m行和n列的方格。一個機器人從座標0,0的格子開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數位之和大於k的格子。例如,當k為18時,機器人能夠進入

offer-從上往下列印二叉樹

題目描述從上往下打印出二叉樹的每個節點,同層節點從左至右列印。/* struct TreeNode { int val; struct TreeNode *left; struct TreeNod

牛客網劍指offer—題目一在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數

在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路:因為是隻需判斷有無該整數,所以用bool函式,返回false或true      假設是這樣一個數組

offer——二叉樹中和為某一值的路徑

題目描述輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。思路    首先想到的自然是遞迴。遞迴思路為,若當前節點為空,則返回;若當前節點為葉子節點,且val與期望數值相等,則將該路徑加

-Offer-複雜連結串列的複製

題目連結:https://www.nowcoder.com/practice/f836b2c43afc4b35ad6adc41ec941dba?tpId=13&tqId=11178&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-int

offer程式設計題——從上往下列印二叉樹(Java)

解題思路:從上往下列印,則是父節點—>左子節點—>右子節點的順序,總的來說順序是很明確的,左子節點的子節點也優先於右子節點的子節點,所以只要從左往右依次遍歷左右子節點,子節點的子節點也能是順序排列的,佇列可以滿足該需求 程式碼如下:import java.ut