【编程题目 |100分】数字字符串组合倒序【2022 Q1,Q2 考试题 2023 Q2考试题 B


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

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

64bit IO Format:%lld


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

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


题目描述

【数字字符串组合倒序】

对数字,字符,数字串,字符串,以及数字与字符串组合进行倒序排列。

字符范围:

由 a 到 z, A 到 Z,数字范围:由 0 到 9

符号的定义

  1. ”作为连接符使用时作为字符串的一部分,例如“20-years”作为一个整体字符串呈现;
  2. 连续出现 2 个’及以上时视为字符串间隔符,如“out–standing”中的”–“视为间隔符,是 2 个独立整体字符串”out”和”standing”;
  3. 除了 1,2 里面定义的字符以外其他的所有字符,都是非法字符,作为字符串的间隔符处理,倒序后间隔符作为空格处理;
  4. 要求倒排后的单词间隔符以一个空格表示;如果有多个间隔符时,倒排转换后也只允许出现一个字格间隔符:

输入示例

I am an 20-years out--standing @ * -stu- dent

输出示例

dent stu standing out 20-years an am I

CPP解法一


#include <bits/stdc++.h>

using namespace std;

bool isValid(char ch) 
{
    return (islower(ch) || isupper(ch) || isdigit(ch));
}

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


隐藏内容

此处内容需要权限查看

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

CPP解法二


#include<bits/stdc++.h>

using namespace std;

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


隐藏内容

此处内容需要权限查看

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

Python


from typing import List


class Solution:

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


隐藏内容

此处内容需要权限查看

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

JAVA


package com.huawei.uapcc.tm.decoder;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

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


隐藏内容

此处内容需要权限查看

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