1040. Longest Symmetric String (25)
时间限制
400 ms
内存限制
32000 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue
Given a string, you are supposed to output the length of the longest symmetric sub-string. For example, given "Is PAT&TAP symmetric?", the longest symmetric sub-string is "s PAT&TAP s", hence you must output 11.
Input Specification:
Each input file contains one test case which gives a non-empty string of length no more than 1000.
Output Specification:
For each test case, simply print the maximum length in a line.
Sample Input:Is PAT&TAP symmetric?Sample Output:
11
题意:模拟一个洗牌机,大致的功能是如果位置i的数字是j,那么就把位置i的牌移动到位置j去,求n次洗牌后牌堆的位置。
思路:基本就是哈希了,没什么技巧性。
#include<iostream>
#include<string>
using namespace std;
string str[60],str1[60];
char ch[4]={'S','H','C','D'};
int arry[60];
int main()
{
int n;
int i,j,k;
char ch1;
for(k=0;k<4;k++)
{
for(i=1;i<=13;i++)
{
if(i>=10)
{
ch1='0'+(i%10);
str[k*13+i]=str[k*13+i]+ch[k]+'1'+ch1;
}
else
{
ch1='0'+i;
str[k*13+i]=str[k*13+i]+ch[k]+ch1;
}
}
}
str[53]="J1",str[54]="J2";
//for(i=1;i<=54;i++) cout<<str[i]<<endl;
cin>>n;
for(i=1;i<=54;i++)
{
cin>>k;
arry[i]=k;
}
while(n--)
{
for(i=1;i<=54;i++)
{
str1[arry[i]]=str[i];
}
for(i=1;i<=54;i++)
{
str[i]=str1[i];
}
}
for(i=1;i<=53;i++)
cout<<str1[i]<<" ";
cout<<str1[i]<<endl;
return 0;
}