字串的調整II
字串的調整II
題目描述
給定一個字元型別的陣列chas[],chas右半區全是空字元,左半區不含有空字元。現在想將左半區的空格字串替換成“%20”,假設chas右半區足夠大,可以滿足替換需要的空間,請完成替換函式。
輸入描述:
輸出一行,代表chas的左半區 ( 1 ≤ l e n g t h ( c h a s l e f t ) ≤ 1 0 5 ) (1 \leq length(chas_{left}) \leq 10^5 ) (1≤length(chasleft)≤105) 。
輸出描述:
輸出一行,代表替換後的字串。
示例1
輸入
a b c
輸出
a%20%20b%20%20%20%20c
備註:
時間複雜度 O ( n ) O(n) O(n),額外空間複雜度 O ( 1 ) O(1) O(1)。
題解:
從前往後遍歷,統計空格數目,設為 num ,最終的字串長度為:len + num * 2。
然後從後往前遍歷,遇到非空字元,則直接複製,否則依次填充“0 2 %”。
程式碼
#include <stdio.h>
const int N = 3e5 + 10;
char s[N];
int main(void) {
gets(s);
int num = 0, i;
int len = 0;
for (i = 0; s[i]; ++i) {
if (s[i] == ' ') ++num;
}
len = i + num * 2 - 1;
s[len + 1] = 0;
while (--i >= 0) {
if (s[i] != ' ') s[len--] = s[i];
else {
s[len--] = '0';
s[len--] = '2';
s[len--] = '%';
}
}
printf("%s\n", s);
return 0;
}
相關文章
- Gamma調整GAM
- Leedcode-反轉字串 II字串
- Oracle效能調整之--DML語句效能調整Oracle
- Oracle效能最佳化調整--調整重做機制Oracle
- 網路調整——效能調整手冊和參考
- Nginx調整(一)Nginx
- oracle 效能調整Oracle
- 調整策略工具
- 視訊直播app原始碼,對首頁樣式的整體調整,調整成圓角化APP原始碼
- Nginx的優化調整方面Nginx優化
- 週報調整的若干思考
- 調整 JavaScript 抽象的迭代方案JavaScript抽象
- 調整WebLogic的時間Web
- 調整JavaScript 抽象的迭代方案JavaScript抽象
- 系統時間的調整
- Oracle效能調整的誤區Oracle
- 批量調整視訊尺寸大小的方法,一鍵自動批量調整視訊
- 自動記憶體調整中真正決定自動調整的引數記憶體
- oracle 線上調整redoOracle
- MySQL引數調整MySql
- 資料塊調整
- AIX 調整時區AI
- oracle效能調整(1)Oracle
- oracle效能調整(2)Oracle
- ORACLE效能調整--1Oracle
- ORACLE效能調整---2Oracle
- Oracle 效能調整for HWOracle
- (zt)Oracle效能調整Oracle
- 調整oracle redologOracle Redo
- oracle效能調整2Oracle
- 字串轉換整數(atoi)字串
- hadoop queue的配額調整Hadoop
- 備份的優化和調整優化
- JavaScript拖動調整元素的尺寸JavaScript
- Android : 螢幕亮度的調整Android
- 譯|調整JavaScript抽象的迭代方案JavaScript抽象
- oracle資料庫的效能調整Oracle資料庫
- 用於效能調整的動態效能檢視——效能調整手冊和參考