/** * 现场编程题题目内容: * * 现给你一个由数字组成的字符串 numStr,请你返回移除了 cnt 个字符后可能获得的最大的数字。 * * 注意: * * 字符串 numStr 不会以 0 开头; * * 移除后剩余的数字保持原顺序不变。 * * 示例 1: * * 输入:numStr = "264712", cnt = 2 * * 输出:"6712" * * 提示: * * 1 <= cnt < numStr.length <= 100000 * **/ public class Main { public static void main(String[] args) { System.out.println(getMaxNumStr("264712", 2)); System.out.println(getMaxNumStr("100888", 3)); } private static String getMaxNumStr(String numStr, int cnt) { if (cnt == 0) { return numStr; } String maxStr = ""; for (int i = 0, len = numStr.length(); i < len; i++) { String num = numStr.substring(0, i) + numStr.substring(i + 1, len); if (maxStr.compareTo(num) < 0) { maxStr = num; } } return getMaxNumStr(maxStr, cnt - 1); } }
华为二面机试试
于 2022-02-17 21:08:32 首次发布