zoukankan      html  css  js  c++  java
  • 循环字符串最大最小表示法模版

    循环字符串最大最小表示法模版

    定义字符串abcde和cdeab同构,因为abcde转两格即为cdeab,该字符串称为循环字符串。

    循环字符串的字典序最小的同构字符串称为最小表示,最大表示同理。

    这里只给模版,以后再深究。

    int getMin(char *s) ///返回首位置
    {
        int n=strlen(s);
        int i=0,j=1,k=0;
        while(i<n&&j<n&&k<n){
            int t=s[(i+k)%n]-s[(j+k)%n];
            if(!t) k++;
            else{
                if(t>0) i+=k+1;
                else j+=k+1;
                if(i==j) j++;
                k=0;
            }
        }
        return min(i,j);
    }
    
    int getMax(char *s)
    {
        int n=strlen(s);
        int i=0,j=1,k=0;
        while(i<n&&j<n&&k<n){
            int t=s[(i+k)%n]-s[(j+k)%n];
            if(!t) k++;
            else{
                if(t<0) i+=k+1;
                else j+=k+1;
                if(i==j) j++;
                k=0;
            }
        }
        return min(i,j);
    }
    View Code
    没有AC不了的题,只有不努力的ACMER!
  • 相关阅读:
    棋盘问题 简单搜索DFS
    Equivalent Strings
    素数环
    LeetCode Maximum Product Subarray
    UVA 725 – Division
    矩形嵌套问题
    ACM最大子串和问题
    ACM装箱问题
    ACM田胫赛马
    ACM雷达安放问题
  • 原文地址:https://www.cnblogs.com/--560/p/4606356.html
Copyright © 2011-2022 走看看