【编程题目 |100分】英文输入法【2021 H2考试题】


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

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

64bit IO Format:%lld


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

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


题目描述

【英文输入法】

主管期望你来实现英文输入法单词联想功能。

需求如下:

  • 依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列,
  • 如果联想不到,请输出用户输入的单词前缀。

注意:

  1. 英文单词联想时,区分大小写
  2. 缩略形式如”don’t”,判定为两个单词,”don”和”t”
  3. 输出的单词序列,不能有重复单词,且只能是英文单词,不能有标点符号

输入描述

  • 输入为两行。
  • 首行输入一段由英文单词word和标点符号组成的语句str
  • 接下来一行为一个英文单词前缀pre

0 < word.length() <= 20

0 < str.length <= 10000

0 < pre <= 20

输出描述

  • 输出符合要求的单词序列或单词前缀,存在多个时,单词之间以单个空格分割

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

输入

I love you

He

输出

He

说明

  • 从用户已输入英文语句”I love you”中提炼出“I”、“love”、“you”三个单词,接下来用户输入“He”,
  • 从已输入信息中无法联想到任何符合要求的单词,因此输出用户输入的单词前缀。

C++


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include<bits/stdc++.h>
using namespace std;
#include<bits/stdc++.h> using namespace std;
#include<bits/stdc++.h>

using namespace std;

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


隐藏内容

此处内容需要权限查看

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

JAVA解法一


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String[] arr = in.nextLine().split("[^a-zA-Z]+");
String key = in.nextLine();
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextLine()) { String[] arr = in.nextLine().split("[^a-zA-Z]+"); String key = in.nextLine();
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextLine()) {
            String[] arr = in.nextLine().split("[^a-zA-Z]+");
            String key = in.nextLine();

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


隐藏内容

此处内容需要权限查看

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

JAVA解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
String target = sc.nextLine();
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); String target = sc.nextLine();
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

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

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


隐藏内容

此处内容需要权限查看

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


Python


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


隐藏内容

此处内容需要权限查看

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

JavaScript


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let strings = readline()
.replace("'"," ")
.replace(",","")
.replace(".","")
.replace("?","")
.replace("!","")
.split(" ");
let strings = readline() .replace("'"," ") .replace(",","") .replace(".","") .replace("?","") .replace("!","") .split(" ");
let strings = readline() 
 .replace("'"," ") 
 .replace(",","") 
 .replace(".","") 
 .replace("?","") 
 .replace("!","") 
 .split(" ");

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


隐藏内容

此处内容需要权限查看

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