程序员面试:字符串相关问题
2012-03-20 11:04
141 查看
1.回文数判断:
2.回文字符串判断:
当字符串很长的时候上面的算法效率会比较低,优化一下算法
3.字符串转数字, atoi重写
4.字符串倒序输出
6.字符串小写变大写
void uppercase(char * str)
{
int len =strlen(str);
for(size_t i=0;i<len;i++)
{
if('a'<=str[i]&&str[i]<='z')
str[i]-=('a'-'A');
}
}
int huiwenNum(long num) { long result =0; long i=num; while(i>=0) { result=result *10 +i%10; i=i/10; } if(result ==num) return 1; else return 0; }
2.回文字符串判断:
int huiwenStr(char * str) { char *str1=new char[100]; memset(str1,0,100); strcpy(str1,str); int len=strlen(str1); int i,j; i=len; j=0; while(j!=i) { str1[j]=str[len-1]; j++; len--; } str1[i]='\0'; if(!strcmp(str1,str)) { delete str1; return 1; } else { delete str1; return 0; } }
当字符串很长的时候上面的算法效率会比较低,优化一下算法
int IsReverseStr(char *aStr) { int i,j; int found=1; if(aStr==NULL) return -1; j=strlen(aStr); for(i=0;i<j/2;i++) if(*(aStr+i)!=*(aStr+j-i-1)) { found=0; break; } return found; }
3.字符串转数字, atoi重写
int atoi(char *str) { int base=0; bool flag=true; if(str[0]='-') flag=false; while(isdigit(*str)) base=base*10+(*str++ - '0'); return (flag)?(base):((-1)*base); }
4.字符串倒序输出
void reverseStr(char * str) { assert(*str!=NULL); int len=strlen(str); char temp; for(int i=0;i<len/2;i++) { temp=str[i]; str[i]=str[len-i-1]; str[len-i-1]=temp; } }5.求两个字符串的最大公共子字符串。 如:“abcdefg” 与“adfefg”结果为“efg”
void maxSubStr(char *str1,char *str2,char *maxSubStr,) { assert((*str1!=NULL)&&(*str2!=NULL)); assert(*maxSubStr!=NULL); int len1=strlen(str1); int len2=strlen(str2); int maxPos=-1; int maxLen=0; for(int i=0;i<len1;i++) { for(int j=0;j<len2;j++) { if(str1[i]==str2[j]) for(int k=1;((str1[i+k]==str2[j+k])&&(str1[i+k]!='\0'));k++) if(k>maxLen) { maxLen=k; maxPos=i; } } } if(maxPos==-1) maxSubStr[0]='\0'; else { memcpy(maxSubStr,str1+maxPos,maxLen); maxSubStr[maxLen]='\0'; } }
6.字符串小写变大写
void uppercase(char * str)
{
int len =strlen(str);
for(size_t i=0;i<len;i++)
{
if('a'<=str[i]&&str[i]<='z')
str[i]-=('a'-'A');
}
}
相关文章推荐
- 数字与字符串相关问题
- c类型字符串的相关问题
- 字符串的相关问题
- 字符串的排列与组合及八皇后等其他相关问题
- 关于C语言字符数组、字符串和指针的相关问题
- 关于字符串的相关问题
- 字符串相关操作、问题及算法提纲
- 知识储备:02数组与字符串:String相关问题
- 常见问题及解决办法 整理之3(字符串相关操作)
- 字符串相关问题
- 字符串组合相关问题
- python 处理中文字符串的相关问题
- 字符串数组初始化相关问题总结
- 括号字符串的相关问题 Python 版
- 第二章、字符串是否包含及相关问题扩展
- Android 中java 关于字符串与整形转换的相关问题(Invalid Int)
- 02字符串包含及相关问题
- 字符串的相关问题
- 字符串的相关处理问题
- (C语言)字符串反转相关问题