一千题,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.mzph.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…