iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0
佛心分享-刷題不只是刷題

轉生理工組後從零開始的leetcode刷題系列 第 27

day-27[medium.2380]time needed to rearrange a binary string

  • 分享至 

  • xImage
  •  

You are given a binary string s. In one second, all occurrences of "01" are simultaneously replaced with "10". This process repeats until no occurrences of "01" exist.

Return the number of seconds needed to complete this process.


題目給咱一個二進位字串 s,在一秒內,所有出現的01會同時被替換成10。
一直重複這件事,直到字串中不再出現 "01" 為止。
目標是返回所需秒數。

我的解題思路:

  1. 遍歷字串
  2. 當檢查到字串有01時執行
  3. 把他們全部替換成10後
  4. 計數器++,然後開始新一輪遍歷
  5. 直到某次整個字串都沒有01
  6. 返回計數
  • 說到替換,好像我鐵人賽第一天還替二天來著的題目有學過相關語法!!
  • replaceAll:將字串中的指定字串替換成新的字串
  • contains :檢查字串中是否有指定的字串

class Solution {
    public int secondsToRemoveOccurrences(String s) {
        int sec= 0;

        // 當有字串有01就執行
        while (s.contains("01")) {
            // 替換
            s = s.replaceAll("01", "10");
            sec++;
        }
        return sec;
    }
}

碰巧用上了剛開始鐵人賽時學大神用的方法,最近也快完賽了,有中首尾呼應的感覺!
https://ithelp.ithome.com.tw/upload/images/20241011/20169432W3TmPg4ty2.png


上一篇
day-26[medium.2554]maximum number of integers to choose from a range i
下一篇
day-28[medium.2134]minimum swaps to group all 1's together ll
系列文
轉生理工組後從零開始的leetcode刷題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言