国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

?LeetCode解法匯總1177. 構建回文串檢測

這篇具有很好參考價值的文章主要介紹了?LeetCode解法匯總1177. 構建回文串檢測。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄鏈接:

力扣編程題-解法匯總_分享+記錄-CSDN博客

GitHub同步刷題項目:

https://github.com/September26/java-algorithms

原題鏈接:

力扣

描述:

給你一個字符串?s,請你對?s?的子串進行檢測。

每次檢測,待檢子串都可以表示為?queries[i] = [left, right, k]。我們可以?重新排列?子串?s[left], ..., s[right],并從中選擇?最多?k?項替換成任何小寫英文字母。?

如果在上述檢測過程中,子串可以變成回文形式的字符串,那么檢測結果為?true,否則結果為?false。

返回答案數組?answer[],其中?answer[i]?是第?i?個待檢子串?queries[i]?的檢測結果。

注意:在替換時,子串中的每個字母都必須作為?獨立的?項進行計數,也就是說,如果?s[left..right] = "aaa"?且?k = 2,我們只能替換其中的兩個字母。(另外,任何檢測都不會修改原始字符串?s,可以認為每次檢測都是獨立的)

示例:

輸入:s = "abcda", queries = [[3,3,0],[1,2,0],[0,3,1],[0,3,2],[0,4,1]]
輸出:[true,false,false,true,true]
解釋:
queries[0] : 子串 = "d",回文。
queries[1] :?子串 = "bc",不是回文。
queries[2] :?子串 = "abcd",只替換 1 個字符是變不成回文串的。
queries[3] :?子串 = "abcd",可以變成回文的 "abba"。 也可以變成 "baab",先重新排序變成 "bacd",然后把 "cd" 替換為 "ab"。
queries[4] :?子串 = "abcda",可以變成回文的 "abcba"。

提示:

  • 1 <= s.length,?queries.length?<= 10^5
  • 0 <= queries[i][0] <= queries[i][1] <?s.length
  • 0 <= queries[i][2] <= s.length
  • s?中只有小寫英文字母

解題思路:

* 解題思路:

* 構建二維數組,timeList[i]代表第i位出現的次數,length代表26個字母出現的。

* 每次遍歷queries的時候,取timeList[left]和timeList[right],求之間的各個字符的出現次數。

* 如果是偶數則跳過,奇數則diffTimes++。最終如果right-left為奇數,則diffTimes應該為1。否則為0文章來源地址http://www.zghlxwxcb.cn/news/detail-485049.html

代碼:

class Solution1177
{
public:
    bool check(vector<int> left, vector<int> right, int length, int k)
    {
        int diffTimes = 0;
        for (int i = 0; i < left.size(); i++)
        {
            if ((right[i] - left[i]) % 2 == 0)
            {
                continue;
            }
            diffTimes++;
            if (diffTimes == 2)
            {
                diffTimes = 0;
                k--;
            }
        }
        if (k < 0)
        {
            return false;
        }
        if (length % 2 == 0)
        {
            return diffTimes == 0;
        }
        return diffTimes == 1;
    }

    vector<bool> canMakePaliQueries(string s, vector<vector<int>> &queries)
    {
        vector<bool> list;
        vector<vector<int>> timeList(s.length() + 1, vector<int>(26));
        int length = s.length();
        vector<int> querie(26);
        for (int i = 1; i < length + 1; i++)
        {
            querie[s.at(i - 1) - 'a']++;
            timeList[i] = querie;
        }
        for (int i = 0; i < queries.size(); i++)
        {
            int left = queries[i][0];
            int right = queries[i][1] + 1;
            int k = queries[i][2];
            list.push_back(check(timeList[left], timeList[right], right - left, k));
        }
        return list;
    }
};

到了這里,關于?LeetCode解法匯總1177. 構建回文串檢測的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • ?LeetCode解法匯總344. 反轉字符串

    https://github.com/September26/java-algorithms 編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組? s ?的形式給出。 不要給另外的數組分配額外的空間,你必須 原地修改輸入數組 、使用 O(1) 的額外空間解決這一問題。 示例 1: 示例 2: 提示: 1 = s.length = 105

    2024年02月14日
    瀏覽(23)
  • ?LeetCode解法匯總2865. 美麗塔 I

    https://github.com/September26/java-algorithms 給你一個長度為? n ?下標從? 0 ?開始的整數數組? maxHeights ?。 你的任務是在坐標軸上建? n ?座塔。第? i ?座塔的下標為? i ?,高度為? heights[i] ?。 如果以下條件滿足,我們稱這些塔是? 美麗 ?的: 1 = heights[i] = maxHeights[i] heights ?是一

    2024年01月25日
    瀏覽(31)
  • ?LeetCode解法匯總88. 合并兩個有序數組

    https://github.com/September26/java-algorithms 給你兩個按? 非遞減順序 ?排列的整數數組? nums1 ? 和? nums2 ,另有兩個整數? m ?和? n ?,分別表示? nums1 ?和? nums2 ?中的元素數目。 請你? 合并 ? nums2 ? 到? nums1 ?中,使合并后的數組同樣按? 非遞減順序 ?排列。 注意: 最終,合并

    2024年02月12日
    瀏覽(29)
  • ?LeetCode解法匯總LCP 50. 寶石補給

    GitHub - September26/java-algorithms: 算法題匯總,包含??停琹eetCode,lintCode等網站題目的解法和代碼,以及完整的mode類,甚至鏈表代碼生成工具都有提供。 歡迎各位勇者來到力扣新手村,在開始試煉之前,請各位勇者先進行「寶石補給」。 每位勇者初始都擁有一些能量寶石,?

    2024年02月07日
    瀏覽(23)
  • ?LeetCode解法匯總1911. 最大子序列交替和

    https://github.com/September26/java-algorithms 一個下標從? 0 ?開始的數組的? 交替和 ?定義為? 偶數 ?下標處元素之? 和 ?減去? 奇數 ?下標處元素之? 和 ?。 比方說,數組? [4,2,5,3] ?的交替和為? (4 + 5) - (2 + 3) = 4 ?。 給你一個數組? nums ?,請你返回? nums ?中任意子序列的? 最大交

    2024年02月15日
    瀏覽(22)
  • ?LeetCode解法匯總142. 環(huán)形鏈表 II

    ?LeetCode解法匯總142. 環(huán)形鏈表 II

    https://github.com/September26/java-algorithms 給定一個鏈表的頭節(jié)點 ? head ?,返回鏈表開始入環(huán)的第一個節(jié)點。? 如果鏈表無環(huán),則返回? null 。 如果鏈表中有某個節(jié)點,可以通過連續(xù)跟蹤? next ?指針再次到達,則鏈表中存在環(huán)。 為了表示給定鏈表中的環(huán),評測系統(tǒng)內部使用整數?

    2024年02月14日
    瀏覽(20)
  • ?LeetCode解法匯總5-正則表達式匹配?

    https://github.com/September26/java-algorithms 你有一個用于表示一片土地的整數矩陣 land ,該矩陣中每個點的值代表對應地點的海拔高度。若值為0則表示水域。由垂直、水平或對角連接的水域為池塘。池塘的大小是指相連接的水域的個數。編寫一個方法來計算矩陣中所有池塘的大小,

    2024年02月10日
    瀏覽(15)
  • ?LeetCode解法匯總874. 模擬行走機器人

    https://github.com/September26/java-algorithms 機器人在一個無限大小的 XY 網格平面上行走,從點? (0, 0) ?處開始出發(fā),面向北方。該機器人可以接收以下三種類型的命令? commands ?: -2 ?:向左轉? 90 ?度 -1 ?:向右轉? 90 ?度 1 = x = 9 ?:向前移動? x ?個單位長度 在網格上有一些格子

    2024年02月11日
    瀏覽(31)
  • ?LeetCode解法匯總1073. 負二進制數相加

    https://github.com/September26/java-algorithms 給出基數為? -2 ?的兩個數? arr1 ?和? arr2 ,返回兩數相加的結果。 數字以? 數組形式 ? 給出:數組由若干 0 和 1 組成,按最高有效位到最低有效位的順序排列。例如, arr?= [1,1,0,1] ?表示數字? (-2)^3?+ (-2)^2 + (-2)^0 = -3 。 數組形式 ?中的數

    2024年02月05日
    瀏覽(15)
  • ?LeetCode解法匯總823. 帶因子的二叉樹

    https://github.com/September26/java-algorithms 給出一個含有不重復整數元素的數組? arr ?,每個整數? arr[i] ?均大于 1。 用這些整數來構建二叉樹,每個整數可以使用任意次數。其中:每個非葉結點的值應等于它的兩個子結點的值的乘積。 滿足條件的二叉樹一共有多少個?答案可能很

    2024年02月10日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包