12 12
发新话题
打印

百度之星零八年题目

不好意思。。。。顶个老贴。。。。。。
复制内容到剪贴板
代码:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#define      WCHAR     1
#define      NUM       2
#define      STR       3
#define      INT       4
int CheckData(int,int);
int i,j,number=1,lzw=0;
char char1[200]={0};
int prl[101][2]={1};
char char2[200]={0};
int main(void)
{
scanf("%s",char1);
scanf("%s",char2);
for(i=0;i<strlen(char1);i++)
    {
     if(char1[i]>47&&char1[i]<58)
       {
         if(prl[number][0]==NUM)
            prl[number][1]++;
         else
            {
             j++;
             prl[number][0]=NUM;
             prl[number][1]=prl[number-1][1]+1;            
            }                             
       }
     else if((char1[i]>64&&char1[i]<91)||(char1[i]>96&&char1[i]<123))
        {
         if(prl[number][0]==STR)
             prl[number][1]++;                           
         else
            {
             number++;
             prl[number][0]=STR;
             prl[number][1]=prl[number-1][1]+1;            
            }                                                  
        }
     else if(char1[i]>0)
        {
         number++;
         prl[number][0]=INT;
         prl[number][1]=prl[number-1][1]+1;               
        }
     else
        {
         number++;
         prl[number][0]=WCHAR;
         prl[number][1]=prl[number-1][1]+2;   
         i++;                          
        }
    }
for(i=0;i<strlen(char2);i++)
     {
      if(char2[i]>0)
         i+=CheckData(i,NUM);
      else
         i+=CheckData(i,WCHAR)*2;                          
     }   
     printf("%d\n",lzw);     
return 0;   
}
int CheckData(int n,int style)
{
  int x;
  int time=0;
  int index;
  for(x=1;x<=number;x++)
      if(style==prl[x][0]&&style!=WCHAR)
         {
          index=prl[x-1][1];               
          while(char1[index+time]==char2[n+time])
                 time++;  
          lzw++;            
         }
      else if(style==prl[x][0]&&style==WCHAR)
          {
           index=prl[x-1][1];
           while(char1[index+time]==char2[n+time]&&char1[index+time+1]==char2[n+time+1])
                 time+=2;
           lzw+=time*time;                                       
          }     
   return time;      
}
他大舅他二舅都是他舅,高桌子低板凳都是木头~

TOP

计算机的吧,我都忘了当时学的C语言了,看来二级C白考了啊,

TOP

 12 12
发新话题