Varios números constituyen el número más grande

Información del tema

Hay varias personas en el grupo y cada persona tiene una tarjeta en la mano. La tarjeta es un número entero positivo de 6 dígitos. Conecte las tarjetas para formar varios números y calcule el número más grande que se pueda formar.

  • Descripción de entrada Varias cadenas de números enteros positivos separados por comas ",", independientemente de las anomalías no numéricas, el grupo puede ser de hasta 25 personas
  • Salida Descripción número máximo de cadena
  • Entrada de ejemplo 22,221
  • Salida de muestra 22221

respuesta

El significado del título, el mayor número de puntadas.

  1. Los números deben organizarse
  2. Los valores más grandes deben clasificarse primero
  3. Como se muestra en el siguiente ejemplo, cuando las longitudes no son iguales, los números con el valor de empalme más grande van al frente, 22 y 221 conjuntos de números, 22221 es mayor que 22122, por lo que 22 filas 221
  4. Como se muestra en la siguiente figura, cuando las longitudes son iguales, los números con el valor numérico más grande están en la primera fila, 234 y 341 grupos de números, 341234 es mayor que 234341, por lo que 342 fila 234 está al frente

codificación

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;

public class MostNum {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String input;
		while ((input = br.readLine()) != null) {
			
			// 将输入字符串逗号分割,将分割后的数组转换为list
			String[] numArr = input.split(",");
			List<String> list = Arrays.asList(numArr);
			
			// 对list进行排序
			// 若字符串长度相等,则将数字值大的放前面 23和12比较,23排前面
			// 若长度不等,比较拼接值大小,拼接值大的放前面 123和23,23123值大于12323,23排123
			list.sort((next, previous) -> next.length() == previous.length() ?
					previous.compareTo(next) : (previous + next).compareTo(next + previous));
	
			// 对list中字符数字进行拼接
			StringBuilder sb = new StringBuilder();
			for (String num : list) {
				sb.append(num);
			}
			
			System.out.println(sb);
		}
	}
}

 

Supongo que te gusta

Origin blog.csdn.net/magi1201/article/details/114418949
Recomendado
Clasificación