NC212564. 小波的2020
描述
输入描述
第一行一个字符串s,。
输出描述
一个整形数表示答案。
示例1
输入:
ababbbaasdz
输出:
8
说明:
答案为8(ababbbaa(原字符串前缀)),存在前缀'a'与后缀'a'相等,故其为特殊的C++14(g++5.4) 解法, 执行用时: 2ms, 内存消耗: 532K, 提交时间: 2020-09-23 12:40:37
#include<bits/stdc++.h> using namespace std; int main(){ char s[1005]; bool vis[30]; scanf("%s", s); int len = strlen(s); int ans = 0; for(int j = len - 1; j > 0; j--){ if(s[0] == s[j]){ for(int k = 0; j + k < len && s[0 + k] == s[j + k]; k++) ans = max(ans, j + k + 1); break; } } printf("%d\n", ans); }
C++11(clang++ 3.9) 解法, 执行用时: 2ms, 内存消耗: 492K, 提交时间: 2020-09-21 23:40:29
#include<iostream> #include<cstring> using namespace std; char s[1007]; int main(){ scanf("%s",s+1); int len=strlen(s+1),ans=0,p=-1; for(int i=2;i<=len;i++){ if(s[i]==s[1]){ p=i; } } if(p!=-1){ ans=p; for(int i=1;i+p<=len;i++){ if(s[i+p]==s[1+i]){ ans=i+p; } else{ break; } } } printf("%d\n",ans); }