NowCoder---Some Litte Problems

1,  对字符串进行RLE压缩,将相邻的相同字符,用计数值和字符值来代替。例如:aaabccccccddeee,则可用3a1b6c2d3e来代替。

输入描述: 输入为a-z,A-Z的字符串,且字符串不为空,如aaabccccccddeee

输出描述: 压缩后的字符串,如3a1b6c2d3e

import java.util.*;
public class ZipTheStr {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String s = input.next();
        char[] arr= s.toCharArray();
        int len = s.length();
        int cnt = 0;
        for (int i = 0; i < len; i++) {
            cnt++;
            if (i == len - 1 || arr[i] != arr[i + 1]) {
                System.out.print(cnt + "" + arr[i]+" ");
                cnt = 0;
            }
        }
    }
}

2,求数组交集、并集和差集

package com.example.DailyTestDemo;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @Description:
 * @PackgeName: com.example.DailyTestDemo
 * @ClassName: ArrayListDistinct
 * @Author: leo
 * Date: 2019/10/19 
 * @Version: V1.0
 */
public class ArrayListDistinct {

    //判断是否空集
    public static boolean isEmpty(Collection<?> collection) {
        return (collection == null || collection.isEmpty());
    }
    public static boolean isNotEmpty(Collection<?> collection) {
        return !isEmpty(collection);
    }

    /**
     * 交集
     * @param masterList 主数据列表
     * @param slaveList  从数据列表
     */
    public static <T> List<T> getIntersection(List<T> masterList, List<T> slaveList) {
        return masterList.stream().filter(slaveList::contains).collect(Collectors.toList());
    }

    /**
     * 差集
     * @param masterList 主数据列表
     * @param slaveList  从数据列表
     */
    public static <T> List<T> getDifferenceSet(List<T> masterList, List<T> slaveList) {
        return masterList.stream().filter(t -> !slaveList.contains(t)).collect(Collectors.toList());
    }

    /**
     * 并集
     * @param masterList 主数据列表
     * @param slaveList  从数据列表
     */
    public static <T> List<T> getUnionSet(List<T> masterList, List<T> slaveList) {
        List<T> list = new ArrayList<>();
        list.addAll(masterList);
        list.addAll(slaveList);
        return list.stream().distinct().collect(Collectors.toList());
    }

    public static void main(String[] args) {

        List<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        list1.add(8);

        List<Integer> list2 = new ArrayList<>();
        list2.add(3);
        list2.add(4);
        list2.add(2);
        list2.add(8);

        System.out.println(" ====== 求交集 ====== ");
        List<Integer> intersection = ArrayListDistinct.getIntersection(list1, list2);
        intersection.forEach(System.out::println);

        System.out.println(" ====== 求差集 ====== ");

        List<Integer> differenceSet = ArrayListDistinct.getDifferenceSet(list1, list2);
        differenceSet.forEach(System.out::println);

        System.out.println(" ====== 求并集 ====== ");
        List<Integer> unionSet = ArrayListDistinct.getUnionSet(list1, list2);
        unionSet.forEach(System.out::println);

    }
}
发布了62 篇原创文章 · 获赞 94 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/m0_37676429/article/details/102537969