CareerCup之1 2C風格字串翻轉

2021-09-02 02:51:52 字數 1245 閱讀 3472

【題目】

原文:write code to reverse a c-style string. (c-string means that 「abcd」 is represented as five characters, including the null character.)

譯文:寫**翻轉乙個c風格的字串。(c風格的意思是"abcd"需要用5個字元來表示,包含末尾的 結束字元)

【分析】

這是一道經典的面試題目,雖然看似簡單,但仍然有陷阱。唯一的陷阱就是空間複雜度為o(1)即原地置換,要特別注意null字元。

【**1】

/*********************************

* 日期:2014-05-05

* 題目: c風格字串翻轉

**********************************/

#include #include #include using namespace std;

//c風格字串翻轉

void reverse(char *str)

char *beg = str;

char *end = str;

//end指向最後乙個元素

while(*end)

//注意

--end;

char temp;

//交換

while(beg < end)

}int main()

【**2】

//c風格字串翻轉

void reverse(char *str)

int len = strlen(str);

char temp;

//交換

for(int i = 0;i < len / 2;i++)

}

【**3】

交換的進一步優化,使用異或進行交換:

//c風格字串翻轉

void reverse(char *str)

char *beg = str;

char *end = str;

//end指向最後乙個元素

while(*end)

//注意

--end;

char temp;

//異或 交換

while(beg < end)

}

12 C 之動態記憶體

全域性物件在程式啟動時分配,在程式結束時銷毀 區域性自動物件,進入其定義所在的程式塊時被建立,在離開塊時銷毀 區域性static物件在第一次使用前分配,在程式結束時銷毀。每個程式擁有三個記憶體塊 靜態記憶體 棧 堆。分配在靜態記憶體和棧中的物件由編譯器自動建立和銷毀。對於棧物件,僅在其定義的程式塊執...

12c簡單查詢

檢視例項名稱 select instance name from v instance 檢視所在資料庫 show con name 檢視檢視 select name,con id from v services 檢視可插拔資料庫 select con id,name,open mode from v...

12C的審計模式

1.mixed auditing policy 混合審計模式支援新的審計引擎和老的審計引擎一起工作 資料庫公升級後,已有的審計設定不會受到影響。但是官方建議遷移到統一審計模式。資料庫建立後,預設是使用混合模式。在決定使用unified auditing模式之前,可以使用混合模式建立審計策略然後開啟該...