程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu 4552(字符串)

hdu 4552(字符串)

編輯:C++入門知識

不用KMP

比較第一個字符時,記錄當前位置+1的下標,下次比較第二個位置,從記錄的下標開始比較久可以了。。。

 

 

[cpp]
#include"stdio.h"  
#include"string.h"  
int main() 

    int T; 
    int n; 
    int i,j,k,l,t; 
    int len,ans; 
    int a[100001]; 
    char s[100001]; 
    while(gets(s)) 
    {        
        len=strlen(s); 
        for(i=0;i<len;i++) 
            a[i]=i; 
        j=len; 
        ans=0; 
        l=0; 
        t=1; 
        while(ans!=t) 
        { 
            t=ans; 
            k=0; 
            for(i=0;i<j&&l<len;i++) 
            { 
                if(s[a[i]]==s[l]&&a[i]<len) 
                { 
                    a[k++]=a[i]+1; 
                    ans++; 
                } 
            } 
            j=k; 
            l++; 
        } 
        printf("%d\n",ans%256); 
    } 
    return 0; 

                     

#include"stdio.h"
#include"string.h"
int main()
{
 int T;
 int n;
 int i,j,k,l,t;
 int len,ans;
 int a[100001];
 char s[100001];
 while(gets(s))
 {  
  len=strlen(s);
  for(i=0;i<len;i++)
   a[i]=i;
  j=len;
  ans=0;
  l=0;
  t=1;
  while(ans!=t)
  {
   t=ans;
   k=0;
   for(i=0;i<j&&l<len;i++)
   {
    if(s[a[i]]==s[l]&&a[i]<len)
    {
     a[k++]=a[i]+1;
     ans++;
    }
   }
   j=k;
   l++;
  }
  printf("%d\n",ans%256);
 }
 return 0;
}
     

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved