日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

去掉字符串连续出现K个0的子串

發(fā)布時間:2025/4/16 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 去掉字符串连续出现K个0的子串 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目
給定一個字符串str和一個整數(shù)k,如果str中剛好有連續(xù)的k個‘0’字符出現(xiàn)時,把k個連續(xù)的‘0’字符刪除,返回處理后的字符串。

舉例
  str = “A00B”,k = 2,返回 “AB”。
  str = “A0000B000”,k = 3,返回 “A0000B”。
思路

  • 將字符串轉(zhuǎn)化為數(shù)組
  • 判斷字符數(shù)是否為空或者k是否是0,
  • 定義start 如果是0,先看start是否-1 ,判斷起始,count++,當(dāng)不是0判斷count是否==k,等于 將這些位置為某一字符,且start和count歸0;最后判斷一個count是否等于k.
  • 問題
    答案中在

    while (count-- != 0)chas[start++] =0;

    中將char置為空字符,實際這樣打印出來 如AOOB 2–>是 A B,中間存在空格。使用repalce函數(shù)并不知道怎么取代,因為我寫成了32,23表示的是空格,這樣可以使用replace(“ ”,“”)


    空字符: 字符串結(jié)尾的標(biāo)志(‘\0’),實際上他的數(shù)值是0。 可以理解為標(biāo)志性字符型,其使命主要是為了表明字符串已經(jīng)結(jié)束。

    空格字符: 空格字符( ‘’單引號中間有一個空格)的ASCII碼10進(jìn)制32,16進(jìn)制的0X20
    兩者區(qū)別:最直觀的區(qū)別:值不同兩者的ASCII不同,空(NUL)字符碼值是0,而空格字符的碼值是32。
    Integer.parseInt(String s) : 將 s 轉(zhuǎn)換成 int


    解答

    public class Trr {public static void main(String[] args) {// TODO Auto-generated method stub//System.out.println(removeZero("AB00A",2));System.out.println(removeKZeros("A00B00DD00A00",2).replaceAll(" ", ""));}public static String removeKZeros(String str, int k) {if (str == null || k < 1) {return str;}char[] chas = str.toCharArray();int count = 0, start = -1;for (int i = 0; i != chas.length; i++) {if (chas[i] == '0') {count++;start = start == -1 ? i : start;} else {if (count == k) {while (count-- != 0)chas[start++] =32;}count = 0;start = -1;}}if (count == k) {while (count-- != 0)chas[start++] = 32;}return String.valueOf(chas);} }

    總結(jié)

    以上是生活随笔為你收集整理的去掉字符串连续出现K个0的子串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。