列表

详情


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);
}

上一题