力扣題解(環繞字符串中唯一的子字符串)

467. 環繞字符串中唯一的子字符串

定義字符串?base?為一個?"abcdefghijklmnopqrstuvwxyz"?無限環繞的字符串,所以?base?看起來是這樣的:

  • "...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....".

給你一個字符串?s?,請你統計并返回?s?中有多少?不同非空子串?也在?base?中出現。

思路:本題中要求求所有存在的非空字串,且字串不能重復。首先先求所有存在的字串數目。

dp[i]表示以i結尾的所有字串的數目,則dp[i]=dp[i-1](若第i個元素可以和前面的元素組成字串)或者為0(不能組成字串)。此時dp中存放著所有非空字串的數目,但需要去重。去重主要利用了字串之間的特點,即若以同一個字符結尾,則二者必定一個是另一個的子串(因為以同一個字符結尾前面一定一樣),則只需要存放其中更大的那個就行(因為dp[i]存放以i位置字符結尾的所有字串的數目,一定包含更少的那一部分)。

初始化時dp中每個元素是1,因為只有本身一個字符一定能構成子串。

dp[i]+=dp[i-1],用+=,可以想成dp[i-1]的所有可能加上了最后一個字符的數目(dp[i-1]),和只有最后一個字符的數目(dp[i])之和構成新的dp[i];

class Solution {
public:int findSubstringInWraproundString(string s) {set<string>sets;int n=s.size();vector<int>ret(n,1);for(int i=1;i<n;i++){if(s[i]-s[i-1]==1||s[i]=='a'&&s[i-1]=='z'){ret[i]+=ret[i-1];}}vector<int>num(26,0);for(int i=0;i<n;i++){int low=s[i]-'a';num[low]=max(num[low],ret[i]);}       int sum=0;for(auto e:num){sum+=e;}return sum;}};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43781.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43781.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43781.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入理解 MyBatis 的 SqlSession:MyBatis 核心接口全解析

MyBatis 是一個非常流行的 Java 持久層框架&#xff0c;它簡化了數據庫操作&#xff0c;并且提供了強大的映射特性。在 MyBatis 中&#xff0c;SqlSession 是與數據庫交互的核心接口。本文將詳細介紹 SqlSession 的功能和使用方法。 什么是 SqlSession&#xff1f; SqlSessio…

MYSQL審批流程判斷同一層級審批人是否全部通過審批

在做流程審批的時候&#xff0c;通常會出現某一層有多個審批人的情況&#xff0c;這個時候需要所有人都通過才會進入到下一步 數據結構如下圖表格所示 每一個審批申請對應一個apply_id serial_no相同的代表是同一層級審批人 approval_status是審核狀態 下面我們可以用一個SQL來…

Day50:單調棧 LeedCode 739. 每日溫度 496.下一個更大元素 I 503. 下一個更大元素 II

739. 每日溫度 給定一個整數數組 temperatures &#xff0c;表示每天的溫度&#xff0c;返回一個數組 answer &#xff0c;其中 answer[i] 是指對于第 i 天&#xff0c;下一個更高溫度出現在幾天后。如果氣溫在這之后都不會升高&#xff0c;請在該位置用 0 來代替。 示例 1: 輸…

【蓄勢·致遠】 同為科技(TOWE)2024年年中會議

2024年7月2日-8日&#xff0c;同為科技&#xff08;TOWE&#xff09;召開2024年年中工作會議。會議回顧上半年總體工作情況&#xff0c;分析研判發展形勢&#xff0c;規劃部署下半年工作。 為期一周的工作會議&#xff0c;由同為科技&#xff08;TOWE&#xff09;創始人、董事長…

futures.toArray(new CompletableFuture[0])

futures.toArray(new CompletableFuture[0]) 是一種常見的將 List 轉換為數組的方式&#xff0c;特別是在需要將 List 傳遞給接受數組參數的方法時。讓我們詳細解釋一下這段代碼的具體含義和工作原理。 代碼解釋 假設 futures 是一個 List<CompletableFuture<Map<St…

【人臉識別、Python實現】PyQt5人臉識別管理系統

PyQt5人臉識別管理系統 項目描述主要功能效果展示獲取源碼 項目描述 接的一個基于宿舍管理系統與人臉識別的小單子。然后我把它優化了一些&#xff0c;現在開源一下。有需要的小伙伴自取&#xff0c;點個免費的關注就行 主要功能 1、錄入學生基本信息、錄入人臉 2、主頁面展…

【Django】Django 使用連接串配置數據庫

Django 使用連接串配置數據庫 Django 配置數據庫 修改 settings.py 中 DATABASES&#xff0c;這里以 mysql 數據庫為例。 DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: your_database_name,USER: your_database_user,PASSWORD: your_database_password,HO…

深度|不同數據系統中的“一致性”(Consistency)含義的區別

“你們的系統能實現強一致性嗎&#xff1f;”作為過去幾年一直在開發流處理系統的從業者&#xff0c;我經常被問到這個問題。我時常想自信地推銷我們的產品&#xff0c;但現實情況是&#xff0c;回答這個問題并不簡單。其中的挑戰并不在于問題本身&#xff0c;而在于 “一致性”…

字節8年經驗之談!好用移動APP自動化測試框架有哪些?

移動App自動化測試框架是為了提高測試效率、降低測試成本而開發的一套工具和方法。好用的移動App自動化測試框架有很多&#xff0c;下面將介紹一些常用的框架&#xff0c;并提供一篇超詳細和規范的文章&#xff0c;從零開始幫助你搭建一個移動App自動化測試框架。 1. Appium&a…

筆記:在Entity Framework Core中使用DeleteBehavior配置外鍵級聯刪除

一、目的&#xff1a; 在Entity Framework Core中&#xff0c;DeleteBehavior枚舉定義了在刪除主實體時如何處理與之關聯的外鍵約束。DeleteBehavior.Cascade是DeleteBehavior枚舉的一個選項&#xff0c;它指定當刪除主實體時&#xff0c;所有具有外鍵引用的相關實體也將被自動…

十大優秀AI人工智能作詞軟件有哪些?

1、妙筆生詞&#xff1a;國內專業智能作詞工具&#xff0c;是一款非常優秀的國內作詞軟件&#xff0c;它可以選擇語言&#xff0c;風格&#xff0c;韻腳一鍵生成歌詞&#xff0c;也可以仿寫歌詞&#xff0c;可以續寫歌詞&#xff0c;可以智能取歌名&#xff0c;找優秀詞句&…

神經網絡識別數字圖像案例

學習資料&#xff1a;從零設計并訓練一個神經網絡&#xff0c;你就能真正理解它了_嗶哩嗶哩_bilibili 這個視頻講得相當清楚。本文是學習筆記&#xff0c;不是原創&#xff0c;圖都是從視頻上截圖的。 1. 神經網絡 2. 案例說明 具體來說&#xff0c;設計一個三層的神經網絡。…

如何找工作 校招 | 社招 | 秋招 | 春招 | 提前批

馬上又秋招了&#xff0c;作者想起以前讀書的時候&#xff0c;秋招踩了很多坑&#xff0c;但是第一份工作其實挺重要的。這里寫一篇文章&#xff0c;分享一些校招社招的心得。 現在大學的情況是&#xff0c;管就業的人&#xff0c;大都是沒有就業的輔導員&#xff08;筆者見過…

億發512版本更新,看數據駕駛艙、掃碼揀貨、UDI序列號的新功能

如果您正尋求突破傳統業務模式的束縛&#xff0c;希望擁抱數字化轉型帶來的無限可能&#xff0c;我們誠邀您體驗億發軟件。億發專業團隊將為您提供個性化的咨詢和定制服務&#xff0c;幫助您的企業快速適應市場變化&#xff0c;實現業務模式和商業模式的創新。

【騰訊云生成式AI產品解決方案深度分析 2024】

文末有福利&#xff01; 騰訊云生成式AI產品解決方案 (一) 基于生成式AI的騰訊云產品架構升級 (二) 騰訊云完善的產品矩陣&#xff0c;滿足不同路線客戶需求 1. 路線一 標準軟件 (1) 騰訊樂享AI助手 落地背景及挑戰在企業知識管理、培訓學習、辦公協同場景中&#xff0c;存…

初識C++ | 基本介紹、命名空間、輸入輸出、缺省函數、函數重載、引用、內聯函數、nullptr

基本介紹 C的起源 1979年&#xff0c;當時的 Bjarne Stroustrup 正在?爾實驗室從事計算機科學和軟件?程的研究?作。?對項?中復雜的軟件開 發任務&#xff0c;特別是模擬和操作系統的開發?作&#xff0c;他感受到了現有語?&#xff08;如C語?&#xff09;在表達能?、可…

無法定位程序輸入點kernel32.dll ——一鍵修復丟失kernel32.dll方案

無法定位程序輸入點" 錯誤通常發生在 Windows 操作系統中&#xff0c;當一個程序試圖加載一個 DLL&#xff08;動態鏈接庫&#xff09;文件中的特定函數&#xff0c;但無法找到該函數的入口點時。kernel32.dll 是 Windows 操作系統中的一個關鍵 DLL 文件&#xff0c;它包含…

Backyard二指夾爪硬件安裝與軟件配置

一、背景 每次要用機械臂做實驗時&#xff0c;都要重新配置好一會&#xff0c;尤其這個Backyard二指夾爪&#xff0c;各種連接線和外接電源。雖然很麻煩&#xff0c;但理清思路后&#xff0c;10分鐘就可以搞定。所以說腦力勞動的效率永遠大于體力勞動&#xff0c;要多想&#…

HiFi音頻pro和普通HiFi音頻

針對那些對音質要求極高、追求專業級音頻表現的用戶&#xff0c;音頻設備公司專門設計了HiFi 音頻Pro系列。它們在設計和性能上更為精細和高級&#xff0c;當然價格通常也會反映其高端定位和專業水準。相比之下&#xff0c;普通HiFi音頻設備雖然也能提供良好的音質&#xff0c;…

設置DepthBufferBits和設置DepthStencilFormat的區別

1&#xff09;設置DepthBufferBits和設置DepthStencilFormat的區別 2&#xff09;Unity打包exe后&#xff0c;游戲內拉不起Steam的內購 3&#xff09;Unity 2022以上Profiler.FlushMemoryCounters耗時要怎么關掉 4&#xff09;用GoodSky資產包如何實現晝夜播發不同音樂功能 這是…