5 3 去掉字串中連續出現k個0的子串

2021-07-30 09:24:10 字數 926 閱讀 5253

【題目】

給定乙個字串str和乙個整數k,如果str中正好有連續的k個'0'字元出現時,把k個連續的'0'去掉,返回處理後的字串。

【舉例】

str = "a00b",k = 2,返回"ab";

str = "a0000b000",k = 3,返回"a0000b";

【實現】

#include #include using namespace std;

int _tmain(int argc, _tchar* argv)

int count = 0;

string str1;

for (int i = 0; i < str.size(); i++)

str1 += str[i];

count = 0;

} else

}if (count != k)

cout << str1 << endl;

return 0;

}

【知識點】

1、首先在輸入檢查時忘記了檢查輸入的k,還有對於輸入檢查滿足時應該返回什麼也得記著思考一下,比如本題中如果輸入的str是空或者說k小於1,那麼就沒必要再去『0』了,所以直接返回str就好。

2、本題也可以在原串的基礎上進行去『0』操作,這樣省的在申請乙個額外的str用來儲存去『0』之後的串。但是需要注意如果在原串上直接去0,那麼當滿足去『0』條件時,應該給str[i]賦值為0,因為在ascii碼表中0表示null。

3、做本題就借鑑了5.2中的思想,即去掉連續『0』的時機放在字元不是『0』的時候,這樣就省了一重迴圈,而且便於實現。但是採用這種思想需要注意在迴圈之外還需要再判斷下是否存在滿足條件的情況。

去掉字串中連續出現k個0的字串

給定乙個字串s和乙個整數k,如果s中正好有連續的k個 0 字元出現,把k個 0 字元去掉,返回處理後的字串。如s a00b k 2,返回 ab s a0000b000 k 3,返回 a0000b 維護乙個計數count,表示找到幾個連續的 0 維護找到的第乙個 0 的位置start,遍歷字串,過程中...

去掉字串中連續出現k個0的子串

去掉字串中連續出現k個0的子串 題目 給定乙個字串str和乙個整數k,如果str中正好有連續的k個 0 字元出現時,把k個連續的 0 去掉,返回處理後的字串。舉例 str a00b k 2,返回 a b str a0000b000 k 3,返回 a0000b 解答 使用變數count統計連續出現的0...

去掉字串中連續出現k個0的子串

題目 給定乙個字串str和乙個整數k,如果str中正好有連續的k個 0 字元出現時,把k個連續的 0 字元去除,返回處理後的字串。舉例 str a00b k 2,返回 a002 str a0000b000 k 3,返回 a0000b 難度 思路 對於處理字串各種問題,以前我都是以雙重巢狀著稱,時間複...