zoukankan      html  css  js  c++  java
  • CodeForces

    You are given a string s consisting of lowercase Latin letters. Character c is called k-dominant iff each substring of s with length at least k contains this character c.

    You have to find minimum k such that there exists at least one k-dominant character.

    Input

    The first line contains string s consisting of lowercase Latin letters (1 ≤ |s| ≤ 100000).

    Output

    Print one number — the minimum value of k such that there exists at least one k-dominant character.

    Examples

    Input
    abacaba
    
    Output
    2
    
    Input
    zzzzz
    
    Output
    1
    
    Input
    abcde
    
    Output
    3

    题解:

    找相同字符最大间距的最小值。

    (还要注意 每种字符的第一个与字符串左端点的的距离 和 每种字符的最后一个与右端点的距离)

    代码:

    #include <bits/stdc++.h>
    
    using namespace std;
    
    char S[100005];
    int First[27];//记录每种字符在字符串中的第一个字符的下标,没有是-1。
    
    int main(){
    	
    	scanf("%s",S);
    	int len = strlen(S);
    	memset(First,-1,sizeof(First));
    	int mid;
    	for(int i=0 ; i<len ; i++){
    		mid = S[i]-'a';
    		if(First[mid] == -1)First[mid] = i;	
    	}
    	int Minn = 0x3f3f3f3f;
    	int Maxn;
    	for(int i=0 ; i<26 ; i++){
    		if(First[i] == -1)continue;
    		Maxn = First[i]+1;
    		int last = First[i];
    		for(int j=First[i]+1 ; j<len ; j++){
    			if(S[j] == S[last]){
    				if(j-last>Maxn)Maxn = j-last;
    				last = j;
    			}
    		}
    		if(len-last>Maxn)Maxn = len-last;
    		if(Maxn<Minn)Minn = Maxn;
    	}
    	printf("%d
    ",Minn);
    	
    	return 0;
    } 

  • 相关阅读:
    吃货联盟订餐系统
    第一章课后习题
    hostapd阅读(openwrt)-1
    通过C语言获取MAC地址(转)
    OpenWrt 编译分割
    ubuntu 12.04无盘工作站
    WEB前端性能优化-如何提高页面加载速度
    HTML6
    easyui 根据值查找匹配
    收藏的网站
  • 原文地址:https://www.cnblogs.com/vocaloid01/p/9514133.html
Copyright © 2011-2022 走看看