Posted in 面试题 onSeptember 11, 2015
int GetSubString(char *strSource, char *strResult) {
int iTmp=0, iHead=0, iMax=0;
for(int Index=0, iLen=0; strSource[Index]; Index++) {
if(strSource[Index] >= ’0′ && strSource[Index] strSource[Index-1] > ’0′ && strSource[Index] == strSource[Index-1]+1) {
iLen++; // 连续数字的长度增1
} else { // 出现字符或不连续数字
if(iLen > iMax) {
iMax = iLen; iHead = iTmp;
}
// 该字符是数字,但数字不连续
if(strSource[Index] >= ’0′ && strSource[Index] iTmp = Index;
iLen = 1;
}
}
}
for(iTmp=0 ; iTmp strResult[iTmp] = strSource[iHead++];
strResult[iTmp]=’\0′;
return iMax; // 返回连续数字的最大长度
}
int main(int argc, char* argv[]) {
char strSource[]=”ads3sl456789DF3456ld345AA”, char strResult[sizeof(strSource)];
printf(“Len=%d, strResult=%s \nstrSource=%s\n”,
GetSubString(strSource, strResult), strResult, strSource);
}
int iTmp=0, iHead=0, iMax=0;
for(int Index=0, iLen=0; strSource[Index]; Index++) {
if(strSource[Index] >= ’0′ && strSource[Index] strSource[Index-1] > ’0′ && strSource[Index] == strSource[Index-1]+1) {
iLen++; // 连续数字的长度增1
} else { // 出现字符或不连续数字
if(iLen > iMax) {
iMax = iLen; iHead = iTmp;
}
// 该字符是数字,但数字不连续
if(strSource[Index] >= ’0′ && strSource[Index] iTmp = Index;
iLen = 1;
}
}
}
for(iTmp=0 ; iTmp strResult[iTmp] = strSource[iHead++];
strResult[iTmp]=’\0′;
return iMax; // 返回连续数字的最大长度
}
int main(int argc, char* argv[]) {
char strSource[]=”ads3sl456789DF3456ld345AA”, char strResult[sizeof(strSource)];
printf(“Len=%d, strResult=%s \nstrSource=%s\n”,
GetSubString(strSource, strResult), strResult, strSource);
}
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Tags in this post...
Reply on: @reply_date@
@reply_contents@