소스보기..
long Moore(char* pszStr1 , long nData1 ,char* pszStr2 , long nData2)
{
long i, j, k, len;
static int skip[UCHAR_MAX + 1];
unsigned char c, tail;
len = nData2;
if(len == 0) return -1;
tail = pszStr2[ len - 1 ];
if(len == 1 )
{
for(i=0; i != nData1; i++)
if( pszStr1[i] == tail ) return i;
}
else
{
for( i = 0; i <= UCHAR_MAX; i++)skip[i] = len;
for( i = 0; i< len -1 ; i++)
skip[ pszStr2[i]] = len - 1 - i;
while( c = pszStr1[i] , i != nData1 ){
if( c == tail ){
j = len - 1; k= i;
while( pszStr2[--j] == pszStr1[--k])
if( j == 0 ) return k;
}
i += skip[c];
}
}
return -1;
}
순전히 개인적인 내용을 포스팅하는 개인적인 블로그입니다. 어떤 특정 단체나 조직의 입장을 대변하지않습니다.
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 |