【算法題】2315. 統(tǒng)計(jì)星號(hào)

題目:

給你一個(gè)字符串 s ,每 兩個(gè) 連續(xù)豎線 '|' 為 一對(duì) 。換言之,第一個(gè)和第二個(gè) '|' 為一對(duì),第三個(gè)和第四個(gè) '|' 為一對(duì),以此類推。

請(qǐng)你返回 不在 豎線對(duì)之間,s 中 '*' 的數(shù)目。

注意,每個(gè)豎線 '|' 都會(huì) 恰好 屬于一個(gè)對(duì)。

示例 1:

輸入:s = "l|eet|co|de|"
輸出:2
解釋:不在豎線對(duì)之間的字符加粗加斜體后,得到字符串:"l|
eet|co|de|" 。
第一和第二條豎線 '|' 之間的字符不計(jì)入答案。
同時(shí),第三條和第四條豎線 '|' 之間的字符也不計(jì)入答案。
不在豎線對(duì)之間總共有 2 個(gè)星號(hào),所以我們返回 2 。
示例 2:

輸入:s = "iamprogrammer"
輸出:0
解釋:在這個(gè)例子中,s 中沒有星號(hào)。所以返回 0 。
示例 3:

輸入:s = "yo|uar|e|b|eau|tifu|l"
輸出:5
解釋:需要考慮的字符加粗加斜體后:"yo|uar|e
|b|e**au|tifu|l" 。不在豎線對(duì)之間總共有 5 個(gè)星號(hào)。所以我們返回 5 。

提示:

1 <= s.length <= 1000
s 只包含小寫英文字母,豎線 '|' 和星號(hào) '*' 。
s 包含 偶數(shù) 個(gè)豎線 '|' 。

思路:

模擬,根據(jù)題意,需要統(tǒng)計(jì)第偶數(shù)個(gè)豎線之后,第奇數(shù)個(gè)豎線之前,以及第一個(gè)豎線之前和最后一個(gè)豎線之后的星號(hào)??梢杂靡粋€(gè)布爾值 valid 表示接下去遇到的星號(hào)是否要納入統(tǒng)計(jì),初始化為 true,并且每次遇到豎線都要取反,最后返回符合條件的星號(hào)數(shù)量即可。

java代碼:

class Solution {
    public int countAsterisks(String s) {
        boolean valid = true;
        int res = 0;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == '|') {
                valid = !valid;
            } else if (c == '*' && valid) {
                res++;
            }
        }
        return res;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容