第五章 字串專題 ---------------- 5.9 題解:去掉字串中連線出現的k次的0
題目:
移除字串中連續出現的K個0。
用count記錄連續出現的0的個數N,一旦下一個不是0, 輸出N%K個0。
一、C++程式碼:
#include <iostream>
#include<cstring>
using namespace std;
string remove(string src,int k)
{
int len=src.length();
char arr[len];
strcpy(arr,src.data());
int count=0;
string ans;
for(int i=0;i<len;i++)
{
char c=arr[i];
if(c=='0')
{
count++;
}
else
{
for(int j=0;j<count%k;j++)
{
ans+="0";
}
ans+=c;
count=0;
}
}
for(int j=0;j<count%k;j++)
{
ans+="0";
}
return ans;
}
int main()
{
string s="10000200";
int k=3;
cout<<remove(s,k);
return 0;
}
二、結果:
三、JAVA程式碼:
/**
* 移除字串中連續出現的k個0
* @author xiaow
*
* 可以用掃描字元陣列的解法,但是用正規表示式更為快捷
*
*/
public class RemoveKZeros {
static String remove_1(String src,int k){
String regex = "0{"+k+"}";
return src.replaceAll(regex, "");
}
static String remove_2(String src,int k){
char[]arr = src.toCharArray();
int count = 0;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
char c = arr[i];
if (c == '0') {
count++;
}else {
for (int j = 0; j < count%k; j++) {
sb.append('0');
}
sb.append(c);
count = 0;
}
}
for (int j = 0; j < count%k; j++) {
sb.append('0');
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(remove_1("10000200", 3));
System.out.println(remove_2("10000200", 4));
/*
* 輸出:10200
* 1200
*/
}
}
相關文章
- 第五章 字串專題 ---------------- 5.5 題解:壓縮字串字串
- 第五章 字串專題 ---------------- 5.2 題解:巧妙翻轉字串字串
- 第五章 字串專題 ---------------- 5.8 題解:將字串中按單詞翻轉字串
- 第五章 字串專題 ---------------- 5.4 實踐:替換字串中的空格字串
- 第五章 字串專題 ---------------- 5.11 題解:最短摘要的生成字串
- 第五章 字串專題 ---------------- 5.6 解題:判斷兩字串的字符集是否相同字串
- 第五章 字串專題 ---------------- 5.7 題解:旋轉詞字串
- 第五章 字串專題 ---------------- 5.1 題解:判斷字串有無重複字元字串字元
- 第五章 字串專題 ---------------- 5.10 題解:神奇的迴文串字串
- 第五章 字串專題 ---------------- 5.12 字串匹配之PabinKarp字串匹配
- 第五章 字串專題 ---------------- 字串匹配(二)----KMP演算法字串匹配KMP演算法
- 解決字串連線設定間隔符的問題字串
- Java中怎麼去掉數字字串開頭的0Java字串
- 字串專題字串
- 專題:字串字串
- 第五章 字串專題 ---------------- 字串匹配(三)----字尾陣列演算法字串匹配陣列演算法
- 查詢字串中連續出現的字元字串字元
- 如何獲取字串中相同字元出現的次數字串字元
- 統計字串中某個字元出現的次數字串字元
- python如何去掉字串中的空格Python字串
- 【Kmp求字串字首在字串出現的次數】51nod 1277 字串中的最大值KMP字串
- ASPNET中連線字串字串
- 統計字串出現的次數(C)字串
- 字串連線超長的解決(二)字串
- 字串連線超長的解決(一)字串
- 第五章 字串專題 ---------------- 5.3 走出思維誤區:變形詞問題字串
- 【專題訓練】字串字串
- Oracle字串連線的方法Oracle字串
- 連線字串的SQL方法字串SQL
- [資料庫連線字串] Access 連線字串(轉)資料庫字串
- [資料庫連線字串]Access連線字串(轉)資料庫字串
- Java 去掉字串中的重複資料Java字串
- 集合框架-統計字串中每個字元出現的次數案例圖解框架字串字元圖解
- 字串移位包含的問題——解題筆記字串筆記
- C/C++中的字串另類連線C++字串
- 獲得String字串中某個字元出現的次數字串字元
- 31:字串中最長的連續出現的字元字串字元
- MySQL字串連線MySql字串