Contest1002 - HHU ACM 综合训练1 B题 Friendship of Mouse(朴素算法)

来源:互联网 发布:淘宝店铺类目怎么修改 编辑:程序博客网 时间:2024/05/17 07:43

题意:给定一个小写字母组成的序列,求问其中相同字母之前的最小距离,若不存在相同字母则输出-1。

思路:每次遍历,若找到相同的则更新最短距离,然后break。时间优化在于每次更新完最短距离,下次遍历就可以在最短距离之内遍历。

#include <iostream> #include <stdio.h> #include <string.h> using namespace std;   int main(){           int n;     cin>>n;     getchar();     for(int i=1;i<=n;i++){         string s;         getline(cin,s);         int mindis=9999;         int dis=0;         for(int j=0;j<s.length();j++){             for(int k=j+1;k<=j+mindis&&k<s.length();k++){                 if(s[j]==s[k]){                     if(k-j<mindis)                         mindis=k-j;                     break;                 }             }         }         if(mindis==9999)             mindis=-1;         printf("Case #%d: %d\n",i,mindis);     }      return 0; }


0 0
原创粉丝点击