java实现压缩字符串和java字符串过滤
题目一:通过键盘输入一串小写字母(a~z)组成的字符串。 要求实现函数: 复制代码 代码如下: void stringFilter(const char *pInputStr,long lInputLen,char *pOutputStr); 【输入】 pInputStr:输入字符串 【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出 示例 main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出 题二:题目描述: 要求实现函数: 复制代码 代码如下: void stringZip(const char *pInputStr,char *pOutputStr); 【输入】 pInputStr:输入字符串 【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出 示例 复制代码 代码如下: public class Test { static void stringFilter( char InputStr[],long len,char OutputStr[]){ int[] a= new int[26]; int num=0; int j=0;//OutputStr[]计数 for(int i=0;i<len;i++){ num = InputStr[i]-'a'; if(a[num]==0){//没出现过 OutputStr[j]=InputStr[i]; j++; a[num]=1; } } } static void stringZip( char InputStr[],char OutputStr[]){ char temp=' '; int num=1; int point=0; for(int i=0;i<len;i++){ if(InputStr[i]==temp){ num++; }else{ if(num!=1){ OutputStr[point++]=(char)(num+'0'); num=1; } OutputStr[point++]=temp; temp=InputStr[i]; } } } public static void main(String[] args) { // TODO Auto-generated method stub char [] test={'a','a','c','b','d','e'}; long len=test.length; char [] res = new char[(int) len]; stringFilter(test,len,res); int j=res.length; for(int i=0;i<j;i++){ if(res[i]!=' '){ System.out.print(res[i]); }else break; } char[] res2=new char[(int) (2*len)]; stringZip(test,res2); for(int i=0;i<2*len;i++){ if(res2[i]!=' '){ System.out.print(res2[i]); }else break; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |