NC25347. Pig-Palindromic
描述
输入描述
输出描述
示例1
输入:
AabBAD
输出:
4
示例2
输入:
ACda
输出:
0
示例3
输入:
CCcc
输出:
4
示例4
输入:
A
输出:
0
Python3(3.5.2) 解法, 执行用时: 42ms, 内存消耗: 3556K, 提交时间: 2019-04-26 13:27:06
s=input(); cnt=int(0); ans=int(-0x3f3f3f); for i in range(len(s)): x=int(i); y=int(i+1); cnt=int(0); while x>=0 and y<len(s): if ord(s[y])-ord(s[x])==32 or ord(s[x])-ord(s[y])==32: x-=1; y+=1; cnt+=2; else: break; ans=max(ans,cnt); print(ans);
C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 508K, 提交时间: 2020-02-26 13:06:51
#include<bits/stdc++.h> using namespace std; int main() { string s; cin>>s; int len=s.length(); int ans=0; for(int i=0;i<len;i++) { int l=i,r=i+1,maxi=0; while(l>=0&&r<=len&&(s[l]+32==s[r]||s[r]+32==s[l])) { maxi+=2; l--; r++; } ans=max(ans,maxi); } cout<<ans<<endl; return 0; }
C++14(g++5.4) 解法, 执行用时: 10ms, 内存消耗: 508K, 提交时间: 2019-04-26 15:22:03
#include<bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; int ans=0; int n=s.size(); for(int i=0;i<n;i++){ int s1=0,l=i,r=i+1; while(l>=0&&r<n&&(s[l]+32==s[r]||s[l]==s[r]+32)){ l--; r++; s1+=2; } ans=max(s1,ans); } printf("%d\n",ans); }