【编程题目 |100分】组成最大数【2021 考试题】


时间限制:C/C++ 1秒,其他语言 2秒

空间限制:C/C++262144K,其他语言524288K

64bit IO Format:%lld


本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,

编码后请点击”保存并调试“按钮进行代码提交。


题目描述

【组成最大数】

小组中每位都有一张卡片,卡片上是6位内的正整数,将卡片连起来可以组成多种数字,计算组成的最大数字。

输入描述

“,”号分割的多个正整数字符串,不需要考虑非数字异常情况,小组最多25个人。

输出描述

最大的数字字符串

示例1 输入输出示例仅供调试,后台判题数据一般不包含示例

输入

22,221

输出

22221

示例2 输入输出示例仅供调试,后台判题数据一般不包含示例

输入

4589,101,41425,9999

输出

9999458941425101


C++解法一


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
#include <cmath>
#include <vector>
#include <string>
using namespace std;
typedef unsigned long long ull;
bool Compare(int num1, int num2)
{
int nm1 = num1, nm2 = num2;
ull count1 = to_string(num1).size();
ull count2 = to_string(num2).size();
#include <iostream> #include <cmath> #include <vector> #include <string> using namespace std; typedef unsigned long long ull; bool Compare(int num1, int num2) { int nm1 = num1, nm2 = num2; ull count1 = to_string(num1).size(); ull count2 = to_string(num2).size();
#include <iostream>
#include <cmath>
#include <vector>
#include <string>

using namespace std;

typedef unsigned long long ull;

bool Compare(int num1, int num2) 
{
    int nm1 = num1, nm2 = num2;
    ull count1 = to_string(num1).size();
    ull count2 = to_string(num2).size();

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

C++解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
std::vector<std::string> split(std::string str, const std::string &pattern)
{
std::string::size_type pos;
std::vector<std::string> result;
str += pattern;
int size = str.size();
for (int i = 0; i < size; i++) {
pos = str.find(pattern, i);
if (pos < size) {
std::string s = str.substr(i, pos - i);
result.push_back(s);
i = pos + pattern.size() - 1;
}
}
return result;
}
#include <bits/stdc++.h> using namespace std; typedef long long ll; std::vector<std::string> split(std::string str, const std::string &pattern) { std::string::size_type pos; std::vector<std::string> result; str += pattern; int size = str.size(); for (int i = 0; i < size; i++) { pos = str.find(pattern, i); if (pos < size) { std::string s = str.substr(i, pos - i); result.push_back(s); i = pos + pattern.size() - 1; } } return result; }
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

std::vector<std::string> split(std::string str, const std::string &pattern)
{
    std::string::size_type pos;
    std::vector<std::string> result;
    str += pattern;
    int size = str.size();
    for (int i = 0; i < size; i++) {
        pos = str.find(pattern, i);
        if (pos < size) {
            std::string s = str.substr(i, pos - i);
            result.push_back(s);
            i = pos + pattern.size() - 1;
        }
    }
    return result;
}

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Golang


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package main
import (
"fmt"
"sort"
"strconv"
"strings"
)
func main() {
var input string
fmt.Scanln(&input)
slis := strings.Split(input, ",")
package main import ( "fmt" "sort" "strconv" "strings" ) func main() { var input string fmt.Scanln(&input) slis := strings.Split(input, ",")
package main

import (
    "fmt"
    "sort"
    "strconv"
    "strings"
)

func main() {
    var input string
    fmt.Scanln(&input)
    slis := strings.Split(input, ",")

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JAVA解法一


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] split = sc.nextLine().split(",");
Map<Integer, List<String>> map = new HashMap<>();
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] split = sc.nextLine().split(","); Map<Integer, List<String>> map = new HashMap<>();
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] split = sc.nextLine().split(",");
        Map<Integer, List<String>> map = new HashMap<>();

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JAVA解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] str = sc.nextLine().split(",");
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] str = sc.nextLine().split(",");
import java.util.*;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        String[] str = sc.nextLine().split(",");

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JavaScript


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let str = readLine().split(",");
let len = str.length;
let str = readLine().split(","); let len = str.length;
let str = readLine().split(",");

let len = str.length;

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python解法一


剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import functools
nums = input().split(',')
import functools nums = input().split(',')
import functools

nums = input().split(',')

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看