一千題,No.0026(Ternary String)

描述

You are given a string?s?such that each its character is either?1,?2, or?3. You have to choose the shortest contiguous substring of?s?such that it contains each of these three characters at least once.

A contiguous substring of string?s?is a string that can be obtained from?s?by removing some (possibly zero) characters from the beginning of?s?and some (possibly zero) characters from the end of?s.

輸入描述

The first line contains one integer?t?(1≤t≤20000) — the number of test cases.

Each test case consists of one line containing the string?s?(1≤∣s∣≤200000). It is guaranteed that each character of?s?is either?1,?2, or?3.

The sum of lengths of all strings in all test cases does not exceed?200000.

輸出描述

For each test case, print one integer — the length of the shortest contiguous substring of?s?containing all three types of characters at least once. If there is no such substring, print?0?instead.

用例輸入 1?

7
123
12222133333332
112233
332211
12121212
333333
31121

用例輸出 1?

3
3
4
4
0
0
4

提示

Consider the example test:

In the first test case, the substring?123?can be used.

In the second test case, the substring?213?can be used.

In the third test case, the substring?1223?can be used.

In the fourth test case, the substring?3221?can be used.

In the fifth test case, there is no character?3?in?s.

In the sixth test case, there is no character?1?in?s.

In the seventh test case, the substring?3112?can be used.

翻譯:

描述

你會得到一個字符串s這樣,它的每個字符要么是?1、2?還是?3。您必須選擇最短的連續子字符串s這樣它就至少包含這三個字符中的每一個一次。

字符串的連續子字符串s是一個字符串,可以從s通過從開頭刪除一些(可能為零)字符s以及末尾的一些(可能為零)字符s.

輸入描述

第一行包含一個整數t?(1≤≤20000) — 測試用例的數量。

每個測試用例都由一行包含字符串s?(1≤∣∣≤20000 0).保證每個字符s是?1、2?或?3。

所有測試用例中所有字符串的長度總和不超過20000 0.

輸出描述

對于每個測試用例,打印一個整數 — 最短連續子字符串的長度s至少包含一次所有三種類型的字符。如果沒有這樣的子字符串,請打印0相反。

用例輸入 1?

7
123
12222133333332
112233
332211
12121212
333333
31121

用例輸出 1?

3
3
4
4
0
0
4

提示

請看示例測試:

在第一個測試用例中,可以使用子字符串?123。

在第二個測試用例中,可以使用子字符串213。

在第三個測試用例中,可以使用子字符串?1223。

在第四個測試用例中,可以使用子字符串?3221。

在第五個測試用例中,沒有字符?3s.

在第六個測試用例中,沒有字符?1s.

在第七個測試用例中,可以使用子字符串?3112。

解題思路:

1,將數字存儲到string中

2,寫出函數判斷是否存在123這3個數,如果不存在直接輸出0

3,循環出字符串>3的所有可能并用2的函數判斷,然后比較迭代最小字符數

c++代碼如下:

#include <bits/stdc++.h>using namespace std;bool is_ok(string s)
{int a = 0,b = 0,c = 0;for(int i = 0;i < s.size();++i){char cc = s[i];if(cc == '1') ++a;if(cc == '2') ++b;if(cc == '3') ++c;if(a > 0 && b > 0 && c > 0){return true;}}return false;
}int main()
{int n;cin >> n;while(n--){bool b = false;int res = 20005;string s;cin >> s;for(int i = 0;i <= s.size()-3;++i){for(int j = 3;j <= s.size()-i;++j){string new_s = s.substr(i,j);if(is_ok(new_s)){b = true;res = new_s.size();break;}}}if(b){cout << res << endl;}else{cout << 0 << endl;}}
}

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

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

相關文章

Python3 筆記:IDLE的幾個基本設置

1、設置字體&#xff1a; Options > Configure IDLE > Fonts 2、設置文字顏色&#xff08;設置高亮&#xff09;&#xff1a; Options > Configure IDLE > Highlights 3、設置背景顏色&#xff1a; Options > Configure IDLE > Highlights 4、設置窗口&a…

各位數字和-第13屆藍橋杯選拔賽Python真題精選

[導讀]&#xff1a;超平老師的Scratch藍橋杯真題解讀系列在推出之后&#xff0c;受到了廣大老師和家長的好評&#xff0c;非常感謝各位的認可和厚愛。作為回饋&#xff0c;超平老師計劃推出《Python藍橋杯真題解析100講》&#xff0c;這是解讀系列的第72講。 各位數字和&#…

MongoDB(介紹,安裝,操作,Springboot整合MonggoDB)

目錄 MongoDB 1 MongoDB介紹 MongoDB簡介 MongoDB的特點 MongoDB使用場景 小結 2 MongoDB安裝 安裝MongoDB 連接MongoDB MongoDB邏輯結構 MongoDB數據類型 小結 3 MongoDB操作 操作庫和集合 操作文檔-增刪改 操作文檔-查詢 MongoDB索引 小結 4 SpringBoot整合…

c# sqlite使用

安裝包 使用 const string strconn "Data Sourcedata.db"; using (SQLiteConnection conn new SQLiteConnection(strconn)) {conn.Open();var cmd conn.CreateCommand();cmd.CommandText "select 1";var obj cmd.ExecuteScalar();MessageBox.Show(ob…

ES 查詢踩坑-全字段匹配

需求&#xff1a;name字段需要全匹配查詢 name的映射 普通的must查詢 GET power_engin/_search {"from": 0,"size": 10,"query": {"bool": {"must": [{"term": {"name": {"value": "尼…

刷題之路徑總和Ⅲ(leetcode)

路徑總和Ⅲ 這題和和《為K的數組》思路一致&#xff0c;也是用前綴表。 代碼調試過&#xff0c;所以還加一部分用前序遍歷數組和中序遍歷數組構造二叉樹的代碼。 #include<vector> #include<unordered_map> #include<iostream> using namespace std; //Def…

python從入門到精通01

一、程序員計算器 number int(input("請輸入一個數字&#xff1a;")) print("二進制",bin(number)) print("八進制",oct(number)) print("十六進制",hex(number))二、給電影打分 score int(input("請給電影《肖申克的救贖》打…

計算機畢業設計Hadoop+Hive地震預測系統 地震數據分析可視化 地震爬蟲 大數據畢業設計 Spark 機器學習 深度學習 Flink 大數據

2024 屆本科畢業論文&#xff08;設計&#xff09; 基于Hadoop的地震預測的 分析與可視化研究 姓 名&#xff1a;____田偉情_________ 系 別&#xff1a;____信息技術學院___ 專 業&#xff1a;數據科學與大數據技術 學 號&#xff1a;__2011103094________ 指導…

【大數據面試題】33 Flink SQL做過哪些優化?

一步一個腳印&#xff0c;一天一道面試題 簡單寫幾個 Flink SQL 的優化 1.優化狀態管理 Flink 的狀態管理對整個程序的性能有較大影響。所以優化效果比較好。 設置空閑狀態自動清理&#xff08;TTL Time-to-Live&#xff09;數據量大時選擇 RocksDBStateBackend // 設置狀…

《圖解支付系統設計與實現》電子書_V20240525

相較于上次公開發布的V20240503版本&#xff0c;變更內容如下&#xff1a; 根據掘金網友zz67373&#xff08;李浩銘&#xff09;的勘誤建議&#xff0c;優化了部分描述。增加&#xff1a;金額處理規范&#xff0c;低代碼報文網關實現完整代碼&#xff0c;分布式流控等內容。擴…

Java虛擬機原理(下)-Dalvik vs ART-探秘Android虛擬機內在機制

Android系統作為移動端主流平臺&#xff0c;其高效的虛擬機無疑是其核心競爭力之一。今天&#xff0c;就讓我們一起剝開Dalvik和ART虛擬機的外衣&#xff0c;深入解析它們的工作原理和優缺點&#xff0c;幫助你全面把握Android系統的運行機制。 正文導覽 Dalvik和ART虛擬機的發…

Openstack all-in-one_ironic 部署測試

1. 基礎環境 apt update apt install git python3-dev libffi-dev gcc libssl-dev apt install python3-venv 2. 設置虛擬環境變量 root@controller01:~# python3 -m venv /deploy/venv root@controller01:~# source /deploy/venv/bin/activate (venv) root@controller01:~#…

Nginx - 安全基線配置與操作指南

文章目錄 概述中間件安全基線配置手冊1. 概述1.1 目的1.2 適用范圍 2. Nginx基線配置2.1 版本說明2.2 安裝目錄2.3 用戶創建2.4 二進制文件權限2.5 關閉服務器標記2.6 設置 timeout2.7 設置 NGINX 緩沖區2.8 日志配置2.9 日志切割2.10 限制訪問 IP2.11 限制僅允許域名訪問2.12 …

debugger(一):打斷點的實現以及案例分析

〇、前言 最近在學習 debugger 的實現原理&#xff0c;并按照博客實現&#xff0c;是一個很不錯的小項目&#xff0c;這是地址。由于 macOS 的問題&#xff0c;系統調用并不完全相同&#xff0c;因此實現了兩個版本分支&#xff0c;一個是 main 版本分支&#xff08;macOS M1 …

【一站式學會Kotlin】第八節:kotlin== 和 === 的差別和含義

作者介紹&#xff1a; 百度資深Android工程師T6&#xff0c;在百度任職7年半。 目前&#xff1a;成立趙小灰代碼工作室&#xff0c;歡迎大家找我交流Android、微信小程序、鴻蒙項目。 一&#xff1a;通俗易懂的人工智能教程&#xff1a;https://www.captainbed.cn/nefu/ 點一下…

Altium Designer 中鍵拖動,滾輪縮放,并修改縮放速度

我的版本是AD19&#xff0c;其他版本應該都一樣。 滾輪縮放 首先&#xff0c;要用滾輪縮放&#xff0c;先要調整一下AD 設置&#xff0c;打開Preferences&#xff0c;在Mouse Wheel Configuration 里&#xff0c;把Zoom Main Window 后面Ctrl 上的對勾取消掉&#xff0c;再把…

C++中的懸掛指針和野指針

懸掛指針&#xff08;dangling pointer&#xff09;和野指針&#xff08;wild pointer&#xff09;是兩種常見的指針錯誤&#xff0c;雖然它們都可能導致未定義行為&#xff0c;但它們產生的原因和表現有所不同。 1.懸掛指針&#xff08;Dangling Pointer&#xff09; 懸掛指…

2024 ISCC pwn wp

iscc 練武pwn 總結第一周chaosISCC_easyFlagshopping 第二周ISCC_easyISCC_Uheapheap 第三周miaoYour_programeazy_heap 總結 總體感覺iscc考察的題目都挺基礎的&#xff0c;在目前這種比賽的大環境下&#xff0c;仍然出這種&#xff0c;比較基礎的題目&#xff0c;實在是難得…

智馭未來:探究AIGC行業的戰略入局時機與前景展望

當前時點涉足人工智能生成內容&#xff08;AIGC&#xff09;行業&#xff0c;是一個策略性抉擇&#xff0c;基于對該行業現狀的深度剖析及對未來趨勢的前瞻性預判&#xff0c;其可行性與吸引力顯著。 行業發展階段分析&#xff1a; 技術迭代加速&#xff1a;近年來&#xff0c…

力扣刷題---2283. 判斷一個數的數字計數是否等于數位的值【簡單】

題目描述 給你一個下標從 0 開始長度為 n 的字符串 num &#xff0c;它只包含數字。 如果對于 每個 0 < i < n 的下標 i &#xff0c;都滿足數位 i 在 num 中出現了 num[i]次&#xff0c;那么請你返回 true &#xff0c;否則返回 false 。 示例 1&#xff1a; 輸入&a…