您的位置:首页 > 其它

hdu 5578 Friendship of Frog

2016-07-17 13:06 239 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5578

题目:

[align=left]Problem Description[/align]
N
frogs from different countries are standing in a line. Each country is represented by a lowercase letter. The distance between adjacent frogs (e.g. the
1st
and the 2nd
frog, the N−1th
and the Nth
frog, etc) are exactly 1.
Two frogs are friends if they come from the same country.

The closest friends are a pair of friends with the minimum distance. Help us find that distance.
 

[align=left]Input[/align]
First line contains an integer
T,
which indicates the number of test cases.

Every test case only contains a string with length
N,
and the ith
character of the string indicates the country of ith
frogs.


1≤T≤50.


for 80% data, 1≤N≤100.


for 100% data, 1≤N≤1000.


the string only contains lowercase letters.
 

[align=left]Output[/align]
For every test case, you should output "Case #x: y", where
x
indicates the case number and counts from 1
and y
is the result. If there are no frogs in same country, output
−1
instead.
 

[align=left]Sample Input[/align]

2
abcecba
abc

 

[align=left]Sample Output[/align]

Case #1: 2
Case #2: -1

 

map乱搞一下就好。

#include <iostream>
#include<bits/stdc++.h>
#define INF 0x7fffffff
using namespace std;

char s[1100];

int main()
{
int T;
cin>>T;
for(int k=1;k<=T;k++)
{
scanf("%s",s);
int n=strlen(s);
map<char,int>mp;
int ans=INF;
for(int i=0;i<n;i++)
{
if(mp[s[i]])
ans=min(i+1-mp[s[i]],ans);
mp[s[i]]=i+1;
}
printf("Case #%d: %d\n",k,ans==INF?-1:ans);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: