zoukankan      html  css  js  c++  java
  • 统计大写字母个数&压缩和去重(过滤)

    找出给定字符串中大写字符(即'A'-'Z')的个数

    接口说明

        原型:int CalcCapital(String str);

        返回值:int

    知识点 字符串
    运行时间限制 10M
    内存限制 128
    输入

    输入一个String数据

    输出

    输出string中大写字母的个数

    需考虑字符串为空  如果为空输出0

    样例输入 add123#$%#%#O
    样例输出 1
    import java.util.*;
    public class calUpper{
    	public static void main(String[] args){
    		Scanner cin=new Scanner(System.in);
    		String str=cin.nextLine();
    		int count=0;
    		if(!str.equals(" ")){//注意不要用str!=" "比较字符串
    			for(int i=0;i<str.length();i++){
    			char c=str.charAt(i);
    			if(c>='A' && c<='Z'){
    				count++;
    			}
    		}
    		}else{
    			System.out.println(0);			
    		}
    		System.out.println("count:"+count);
    	}
    		
    }		 
    

      

    题目一:通过键盘输入一串小写字母(a~z)组成的字符串。
              请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
      比如字符串“abacacde”过滤结果为“abcde”。

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

    题二:题目描述(40分):
      通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。
      压缩规则:
      1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".
      2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"

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

    class Test1 
    {	
    	//去掉重复字符
    	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;//赋值完了之后就置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];//把新的字符给temp
    			}
    		}
    
    	}
    	public static void main(String[] args) 
    	{
    		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]!=''){//只要还没到结尾,就一直输出
    				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]!=''){
    				System.out.print(res2[i]);
    			}else
    				break;
    		}
    	}
    
    }
    

      

  • 相关阅读:
    Java 蓝桥杯 算法训练 貌似化学
    Java 蓝桥杯 算法训练 貌似化学
    Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
    Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
    Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
    Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
    Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
    JAVA-蓝桥杯-算法训练-字符串变换
    Ceph:一个开源的 Linux PB 级分布式文件系统
    shell 脚本监控程序是否正在执行, 如果没有执行, 则自动启动该进程
  • 原文地址:https://www.cnblogs.com/GumpYan/p/5790724.html
Copyright © 2011-2022 走看看