作者在 2006-09-16 06:05:00 发布以下内容
* 回文 (C)Copyright 2006-2006 By Tiger5392
* 用法
* ?回文(cExpress)
* 参数
* cExpress: 字符型常量、变量、函数、表达式
* 返回值
* 一个数值
* 数值 含义
* 0 是一个空串
* 1 是单字节回文,是双字节回文
* 2 是单字节回文,不是双字节回文
* 3 不是单字节回文,是双字节回文
* 4 不是单字节回文,不是双字节回文
* 有关概念
* 单字节回文:一个字符串,一个字节一个字节地正念与倒念都一样。
* 双字节回文:一个字符串,两个字节两个字节地正念与倒念都一样。
PARAMETERS cOldString
PRIVATE cOldString,cNewString1,cNewString2,nCnt,nFlags1,nFlags2
IF EMPTY(cOldString)
RETURN 0
ENDIF
STORE [] TO cNewString1,cNewString2
*判断是否为单字节回文
FOR nCnt=LEN(cOldString) TO 1 STEP -1
cNewString1=cNewString1+SUBSTR(cOldString,nCnt,1)
ENDFOR
nFlags1=IIF(cOldString=cNewString1,1,3)
*判断是否为双字节回文
FOR nCnt=LEN(cOldString) TO 1 STEP -2
cNewString2=cNewString2+SUBSTR(cOldString,nCnt-1,2)
ENDFOR
nFlags2=IIF(cOldString=cNewString2,0,1)
RETURN nFlags1+nFlags2
* 用法
* ?回文(cExpress)
* 参数
* cExpress: 字符型常量、变量、函数、表达式
* 返回值
* 一个数值
* 数值 含义
* 0 是一个空串
* 1 是单字节回文,是双字节回文
* 2 是单字节回文,不是双字节回文
* 3 不是单字节回文,是双字节回文
* 4 不是单字节回文,不是双字节回文
* 有关概念
* 单字节回文:一个字符串,一个字节一个字节地正念与倒念都一样。
* 双字节回文:一个字符串,两个字节两个字节地正念与倒念都一样。
PARAMETERS cOldString
PRIVATE cOldString,cNewString1,cNewString2,nCnt,nFlags1,nFlags2
IF EMPTY(cOldString)
RETURN 0
ENDIF
STORE [] TO cNewString1,cNewString2
*判断是否为单字节回文
FOR nCnt=LEN(cOldString) TO 1 STEP -1
cNewString1=cNewString1+SUBSTR(cOldString,nCnt,1)
ENDFOR
nFlags1=IIF(cOldString=cNewString1,1,3)
*判断是否为双字节回文
FOR nCnt=LEN(cOldString) TO 1 STEP -2
cNewString2=cNewString2+SUBSTR(cOldString,nCnt-1,2)
ENDFOR
nFlags2=IIF(cOldString=cNewString2,0,1)
RETURN nFlags1+nFlags2