package com.czm.test;
import java.util.*;
public class Day06 {
public static void main(String[] args) {
// test068();
// test067();
// test066();
// test065();
// test();
// test064();
// test063();
// test063_2();
// test061();
// test061_2();
// test060();
// test059();
// test058();
// test058_2();
// test056();
// String s1 = "ddacz";
// String s2 = "dbddz";
// char[] chars1 = s1.toCharArray();
// char[] chars2 = s2.toCharArray();
// System.out.println(s1.compareTo(s2));
// int sum1 = 0;
// int sum2 = 0;
// for (int i = 0; i < chars1.length; i++) {
// sum1 = sum1 + chars1[i];
// sum2 = sum2 + chars2[i];
// }
// System.out.println(sum1 - sum2);
// test055_2();
// String a = "e ea b c d";
// String[] split1 = a.split(" ");
// for (int i = 0; i < split1.length; i++) {
// System.out.print(split1[i] + " ");
// }
// System.out.println();
// String[] split2 = a.split("\\s+");
// for (int i = 0; i < split2.length; i++) {
// System.out.print(split2[i] + " ");
// }
// test054();
// test052();
// test052_2();
// String aa = "23G2M33T";
// // 根据字母M或G或T进行分割
// String[] split = aa.split("[M|G|T]");
// for (String s : split) {
// System.out.println(s);
// }
// System.out.println(split.length);
// // 根据1个或多个数字进行分割
// String[] split2 = aa.split("[0-9]+");
// for (String s : split2) {
// System.out.println(s);
// }
// String s2 = "12skj34kjf34sjfks";
// // 根据1个或多个字母进行分割
// String[] split3 = s2.split("[a-z|A-Z]+");
// for (String s : split3) {
// System.out.println(s);
// }
// System.out.println(split3.length);
// char a = 1;
// char b = 'a';
// char c = 'z';
// System.out.println(b > a);
// System.out.println(b > a);
// System.out.println(c > b);
//
// String line = "aaaaaa44ko543j123j7345677781";
// String[] split = line.split("[a-z|A-Z]+");
// for (String s : split) {
// System.out.println(s);
// }
// test051();
// test051_2();
// test050();
// test048();
// test048_2();
// String ss = "abcd";
// String ss1 = "ddd";
// for (int k = 0; k < ss.length(); k++) {
// if (ss1.contains(ss.charAt(k) + "")) {
// System.out.println(ss.charAt(k));
// }
// }
// String line = "!ekam a ekekac";
// String[] split = line.split(" ");
// for (int i = 0; i < split.length; i++) {
// String str = split[i];
// // 若单词中包含如数字等其他非字母时不进行反转
// if (str.replaceAll("[a-z|A-Z]", "").length() == 0) {
// String newStr = "";
// for (int j = 0; j < str.length(); j++) {
// newStr = str.charAt(j) + newStr;
// }
// str = newStr;
// }
// System.out.println(str);
// }
// test047();
// test047_2();
// test046();
// String newLine = "7#6$5#126$5";
// String newLine2 = "";
// int mun = 25;
// newLine2 = newLine.replaceFirst("//$", mun + "");
// System.out.println(newLine2);
// String line = "7#6$5#126$5";
// String[] sign = line.split("[0-9]+");
// List<String> signList = new ArrayList<>();
// for (int i = 1; i < sign.length; i++) {
// signList.add(sign[i]);
// }
// String[] nums = line.split("[$|#]+");
//
// for (int i = 0; i < signList.size(); i++){
// System.out.print(signList.get(i) + " ");
// }
// System.out.println();
// for (String s : nums){
// System.out.print(s + " ");
// }
// test046();
// String s = Integer.toBinaryString(100);
// System.out.println(s);
// test043();
// test043_2();
// String s = Integer.toHexString(45);
// System.out.println(s);
// System.out.println(s.toUpperCase());
// 任何进制数转10进制,第一个参数:要转的字符串; 第二个参数:要转的字符串的进制数
// int parseInt = Integer.parseInt("110", 2);
// // 十进制转二进制
// String s = Integer.toBinaryString(123);
// // 十进制转十六进制,十六进制的字母是小写的
// String s1 = Integer.toHexString(123);
// // 字符串小写字母转大写
// String upperCase = s1.toUpperCase();
// // 字符串大写字母转小写
// String lowerCase = s1.toLowerCase();
// System.out.println(parseInt);
// System.out.println(s);
// System.out.println(s1);
// System.out.println(upperCase);
// System.out.println(lowerCase);
// test042();
// test040();
// test040_2();
// test039();
// test039_2();
test038();
// test038_2();
}
/**
* 给定一个随机的整数数组(可能存在正整数和负整数)nums,
* 请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值
* 并返回这两个数(按从小到大返回)以及绝对值。
* 每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
* <p>
* 输入描述:
* 一个通过空格空格分割的有序整数序列字符串,最多1000个整数,
* 且整数数值范围是[-65535,65535]
* <p>
* 输出描述:
* 两个数和两数之和绝对值
* <p>
* 示例一:
* 输入
* -1 -3 7 5 11 15
* 输出
* -3 5 2
* <p>
* 说明:
* 因为|nums[0]+nums[2]|=|-3+5|=2最小,
* 所以返回-3 5 2
*/
public static void test068() {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String[] split = line.split(" ");
List<Integer> list = new ArrayList<>();
for (int i = 0; i < split.length; i++) {
int parseInt = Integer.parseInt(split[i]);
if (!list.contains(parseInt)) {
list.add(parseInt);
}
}
int minRes = Integer.MAX_VALUE;
for (int i = 0; i < list.size() - 1; i++) {
for (int j = i + 1; j < list.size(); j++) {
minRes = Math.min(minRes, Math.abs(list.get(i) + list.get(j)));
}
}
for (int i = 0; i < list.size() - 1; i++) {
Integer numi = list.get(i);
for (int j = i + 1; j < list.size(); j++) {
Integer numj = list.get(j);
if (minRes == Math.abs(numi + numj)) {
if (numi > numj) {
System.out.println(numj + " " + numi + " " + minRes);
} else {
System.out.println(numi + " " + numj + " " + minRes);
}
return;
}
}
}
}
/**
* 题目描述:
* 给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。
* 变换规则:交换字符串中任意两个不同位置的字符。
* 输入描述:
* 一串小写字母组成的字符串s。
* 输出描述:
* 按照要求进行变换得到的最小字符串。
* 备注:
* s是都是小写字符组成
* 1<=s.length<=1000
* 示例
* 输入:abcdef
* <p>
* 输出:abcdef
* <p>
* 说明:abcdef已经�