cf(163)

D. Tandem Repeats?

找最长串联字串的长度

cpp 复制代码
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<vector>
#include<map>
using namespace std;
typedef pair<int,int>PII;
typedef long long ll;
const int N=2e5+10;
ll a[N];

int main()
{
	int t;cin>>t;
	while(t--)
	{
	   string s;cin>>s;
	   int ans=0;
	   for(int k=1;k*2<=s.size();k++)
	   {
	   	   int cnt=0;
	   	   for(int i=0;i+k<s.size();i++)
	   	   {
	   	       if(s[i]==s[i+k]||s[i]=='?'||s[i+k]=='?') cnt++;
			   else cnt=0;
			   if(cnt==k)
			   {
			      ans=k;
				  break;   	
		    	 }  	
		   }
	   }
	   cout<<2*ans<<endl;
	}
    return 0;
}
cpp 复制代码
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<vector>
#include<map>
using namespace std;
typedef pair<int,int>PII;
typedef long long ll;
const int N=2e5+10;
ll a[N];

int main()
{
	int t;cin>>t;
	while(t--)
	{
	   string s;cin>>s;
	   int ans=0;
	   for(int x=2;x<=s.size();x+=2)
	   {
	   	int ok=0;
	   	int y=x/2;
	   	for(int i=0;i<y;i++)
	   	{
	        if(s[i]==s[i+y]||s[i]=='?'||s[i+y]=='?') ok++;  		
	    }
	    if(ok==y) 
	    {
	    	ans=x;
	    	continue;
		}
		for(int i=0;i<s.size();i++)
		{
			int r=i+x;
			if(r>s.size()) break;
			if(s[i]==s[i+y]||s[i]=='?'||s[i+y]=='?') ok--;
			if(s[r]==s[r-y]||s[r]=='?'||s[r-y]=='?') ok++;
			if(ok==y)
			{
				ans=x;
				break;
			}
		}
	   }
	   cout<<ans<<endl;
	}
    return 0;
}
相关推荐
谱写秋天21 分钟前
VSCode+Qt+CMake详细地讲解
c++·ide·vscode·qt·编辑器
毕设源码尹学长42 分钟前
计算机毕业设计 java 血液中心服务系统 基于 Java 的血液管理平台Java 开发的血液服务系统
java·开发语言·课程设计
A7bert7771 小时前
【YOLOv5部署至RK3588】模型训练→转换RKNN→开发板部署
c++·人工智能·python·深度学习·yolo·目标检测·机器学习
lumi.1 小时前
2.3零基础玩转uni-app轮播图:从入门到精通 (咸虾米总结)
java·开发语言·前端·vue.js·微信小程序·uni-app·vue
颜如玉1 小时前
位运算技巧总结
后端·算法·性能优化
冷月半明1 小时前
时间序列篇:Prophet负责优雅,LightGBM负责杀疯
python·算法
oioihoii1 小时前
现代C++工具链实战:CMake + Conan + vcpkg依赖管理
开发语言·c++
m0_480502642 小时前
Rust 入门 注释和文档之 cargo doc (二十三)
开发语言·后端·rust
黑客影儿2 小时前
使用UE5开发2.5D开放世界战略养成类游戏的硬件配置指南
开发语言·c++·人工智能·游戏·智能手机·ue5·游戏引擎
秋难降2 小时前
聊聊 “摸鱼式” 遍历 —— 受控遍历的小心机
数据结构·算法·程序员