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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 809. 情感丰富的文字

發布時間:2024/7/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 809. 情感丰富的文字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

有時候人們會用重復寫一些字母來表示額外的感受,比如 "hello" -> "heeellooo", "hi" -> "hiii"。
我們將相鄰字母都相同的一串字符定義為相同字母組,例如:"h", "eee", "ll", "ooo"。

對于一個給定的字符串 S ,如果另一個單詞能夠通過將一些字母組擴張從而使其和 S 相同,我們將這個單詞定義為可擴張的(stretchy)。
擴張操作定義如下:選擇一個字母組(包含字母 c ),然后往其中添加相同的字母 c 使其長度達到 3 或以上。

例如,以 "hello" 為例,我們可以對字母組 "o" 擴張得到 "hellooo",但是無法以同樣的方法得到 "helloo" 因為字母組 "oo" 長度小于 3。
此外,我們可以進行另一種擴張 "ll" -> "lllll" 以獲得 "helllllooo"。如果 S = "helllllooo",那么查詢詞 "hello" 是可擴張的,因為可以對它執行這兩種擴張操作使得 query = "hello" -> "hellooo" -> "helllllooo" = S。

輸入一組查詢單詞,輸出其中可擴張的單詞數量

示例: 輸入: S = "heeellooo" words = ["hello", "hi", "helo"] 輸出:1 解釋: 我們能通過擴張 "hello""e""o" 來得到 "heeellooo"。 我們不能通過擴張 "helo" 來得到 "heeellooo" 因為 "ll" 的長度小于 3 。說明: 0 <= len(S) <= 1000 <= len(words) <= 100。 0 <= len(words[i]) <= 100。 S 和所有在 words 中的單詞都只由小寫字母組成。

來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/expressive-words
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

class Solution { public:int expressiveWords(string S, vector<string>& words) {if(S == "") return 0;int ans = 0, num = 0;vector<char> S_char;//記錄連續的單一字符vector<int> count;//單一字符個數char prev = S[0];for(int i = 0; i < S.size(); i++){if(S[i] != prev){S_char.push_back(prev);count.push_back(num);num = 1;prev = S[i];}else{num++;}}S_char.push_back(prev);count.push_back(num);for(auto& w : words){if(w == "")continue;bool flag = true;int i = 0;num = 0;prev = w[0];// 對每個單詞同樣的方法for(int j = 0; j < w.size(); j++){if(w[j] != prev){if(i == S_char.size() || prev != S_char[i] || count[i] < num|| (count[i] != num && count[i]<3)){// 字符跟S不匹配、S的字符數小于num、個數不等且S中的個數小于3flag = false;//不能得到Sbreak;}i++;num = 1;prev = w[j];}else{num++;}}if(i == S_char.size() || prev != S_char[i] || count[i] < num|| (count[i] != num && count[i]<3))flag = false;if(flag && i == S_char.size()-1)ans++;}return ans;} };

8 ms 7.6 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的LeetCode 809. 情感丰富的文字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。