小红书笔试


一、字符串压缩

package 字符串压缩;
import java.util.Scanner;
/**
 * @author T470s
 *
 *  输入一串字符,请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。
        例如:
        aac 压缩为 1ac
        xxxxyyyyyyzbbb 压缩为 3x5yz2b
 *
 */
public class MainTest {
    public static void main(String[] args) {
        String[] ss = new Scanner(System.in).nextLine().split("");
        int length = ss.length;
        String s = ss[0];//存储不同的字符
        int count = 0;//存储个数
        StringBuilder sb = new StringBuilder();//目标存储字符串
        for(int i=1;i<length;i++){
            if(s.equals(ss[i])){
               count ++;
            }else {
                if(count!=0){
                    sb.append(count);
                }

                sb.append(ss[i-1]);
                s = ss[i];
                count = 0;
            }
        }
        sb.append(count);//把做最后一次添加到sb中
        sb.append(ss[length-1]);
        System.out.println(sb.toString());
    }
}

二、计算任意整数包含一的个数

package 计算任意整数包含一的个数;

import java.util.Scanner;

/**
* 计算任意一个正整数n(0<n<=2147483647),从1到n(包括n)的所有整数数字里含有多少个1
*/
public class MainTest {
public static void main(String[] args) {
int a = new Scanner(System.in).nextInt();
String s = String.valueOf(a);//int转String
int count = 0;
for(int i=0;i<s.length();i++){
//先获取String中第i位的字符,转成字符串,转成int,再判断是否为1
if(1==Integer.parseInt(String.valueOf(s.charAt(i)))){
count++;
}
}
System.out.println(count);
}
}
原文地址:https://www.cnblogs.com/JimShi/p/11444974.html