本文主要是介绍Contest1002 - HHU ACM 综合训练1 B题 Friendship of Mouse(朴素算法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:给定一个小写字母组成的序列,求问其中相同字母之前的最小距离,若不存在相同字母则输出-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;
}
这篇关于Contest1002 - HHU ACM 综合训练1 B题 Friendship of Mouse(朴素算法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!