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);
}
}