java实现压缩字符串和java字符串过滤

 更新时间:2014年04月27日 09:54:51   作者:  
这篇文章主要介绍了java实现压缩字符串和java字符串过滤,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

题目一:通过键盘输入一串小写字母(a~z)组成的字符串。

请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
比如字符串“abacacde”过滤结果为“abcde”。

要求实现函数:

复制代码 代码如下:

void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);

【输入】 pInputStr:输入字符串
lInputLen:输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;

【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出

示例
输入:“deefd”输出:“def”
输入:“afafafaf” 输出:“af”
输入:“pppppppp” 输出:“p”

main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出
当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,
但是不要改变函数原型。一定要保证编译运行不受影响。

题二:题目描述:

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。

压缩规则:
1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".
2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"

要求实现函数:

复制代码 代码如下:

void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);

【输入】 pInputStr:输入字符串
lInputLen:输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;

【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出

示例
输入:“cccddecc” 输出:“3c2de2c”
输入:“adef” 输出:“adef”
输入:“pppppppp” 输出:“8p”

复制代码 代码如下:

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[], long len, 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','a','c','b','b','b','a','a','c','a','d','d','d','c','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]!='\0'){
    System.out.print(res[i]);
   }else
    break;   
  }

  char[] res2=new char[(int) (2*len)];
  stringZip(test,len,res2);
  for(int i=0;i<2*len;i++){
   if(res2[i]!='\0'){
    System.out.print(res2[i]);
   }else
    break;
  }
 }
}

相关文章

  • springboot下使用mybatis的方法

    springboot下使用mybatis的方法

    这篇文章主要介绍了springboot下使用mybatis的方法,需要的朋友可以参考下
    2017-11-11
  • Java如何自定义类数组的创建和初始化

    Java如何自定义类数组的创建和初始化

    这篇文章主要介绍了Java如何自定义类数组的创建和初始化,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java实现登录和注册案例

    Java实现登录和注册案例

    这篇文章主要为大家详细介绍了Java实现登录和注册案例,把用户信息存进集合,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Spring?Security?过滤器注册脉络梳理

    Spring?Security?过滤器注册脉络梳理

    这篇文章主要介绍了Spring?Security过滤器注册脉络梳理,Spring?Security在Servlet的过滤链中注册了一个过滤器FilterChainProxy,它会把请求代理到Spring?Security自己维护的多个过滤链,每个过滤链会匹配一些URL,如果匹配则执行对应的过滤器
    2022-08-08
  • 浅谈一下Java中的访问修饰符以及作用

    浅谈一下Java中的访问修饰符以及作用

    这篇文章主要介绍了浅谈一下Java中的访问修饰符以及作用,修饰符修饰的是“被访问”的权限,所有修饰符都可以修饰成员变量,方法,构造方法,需要的朋友可以参考下
    2023-05-05
  • Java实现添加条码或二维码到Word文档

    Java实现添加条码或二维码到Word文档

    这篇文章主要介绍了如何在Word文档中添加条码、二维码。可在文档正文段落中添加,也可在页眉页脚中添加,感兴趣的小伙伴快跟随小编一起学习一下吧
    2022-05-05
  • 关于SpringBoot 打包成的可执行jar不能被其他项目依赖的问题

    关于SpringBoot 打包成的可执行jar不能被其他项目依赖的问题

    这篇文章主要介绍了关于SpringBoot 打包成的可执行jar不能被其他项目依赖的问题,本文给大家通过图文实例相结合给大家分享解决方法,需要的朋友可以参考下
    2020-10-10
  • Java如何设置系统参数和运行参数

    Java如何设置系统参数和运行参数

    这篇文章主要介绍了Java如何设置系统参数和运行参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java中Math.round()的用法及说明

    Java中Math.round()的用法及说明

    这篇文章主要介绍了Java中Math.round()的用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Sharding-Jdbc 自定义复合分片的实现(分库分表)

    Sharding-Jdbc 自定义复合分片的实现(分库分表)

    本文主要介绍了Sharding-Jdbc 自定义复合分片的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07

最新评论

?


http://www.vxiaotou.com