列表

详情


NC247576. 牛牛写情书

描述

牛牛给牛妹写了一封情书(仅包含小写字母az),但是被牛可乐截获了,由于牛可乐也喜欢牛妹,所以往这份情书里增加了许多数字和特殊字符(也可以不加),最后收到情书的牛妹想知道原本的情书是否包含某个字符串 k。如果包含则输出 YES,否则输出 NO。

包含指 k 是原本情书的子串,子串即任意连续的字符构成的子字符串,例如对于字符串 abcdefg," abd "," acg "," afe" 不是该字符串的子串," abc "," cde "是该字符串的子串。

牛可乐添加的数字和特殊字符仅包含以下这些:

0123456789+-*|,.~!@#$%^&()[]{}'";:?<>\/

输入描述

第一行输入两个正整数 n 表示字符串 s 的长度,m 表示字符串 k 的长度。
第二行输入一个字符串 s ,代表牛妹最后收到的情书。
第三行输入一个字符串 k ,代表牛妹想知道原本的情书是否包含的单词。
保证 sk 中都不包含空格。

输出描述

输出一行一个YES或者NO代表答案。

示例1

输入:

25 4
niu1niun\|olo5ve,ni+um/ei
love

输出:

YES

示例2

输入:

5 4
liike
like

输出:

NO

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

PHP 解法, 执行用时: 10ms, 内存消耗: 3108K, 提交时间: 2023-08-10 10:37:42

<?php

$input = explode(' ', fgets(STDIN));
$n = intval($input[0]);
$m = intval($input[1]);

$s = fgets(STDIN);
$k = fgets(STDIN);

$ans = '';
for ( $i = 0; $i < $n; $i++ ) {
    if ( ord($s[$i]) >= ord('a') && ord($s[$i]) <= ord('z') ) $ans .= $s[$i];
}
echo strpos($ans, trim($k)) === false ? "NO" : "YES";

Java 解法, 执行用时: 122ms, 内存消耗: 14600K, 提交时间: 2023-08-10 10:22:38

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        String str = sc.next();
        String key = sc.next();
        String ans = "";
        for (int i = 0; i < n; i++) {
            int a = str.charAt(i) - 'a';
            if ( a>=0 && a<26 ) ans += str.charAt(i);
        }
        System.out.println(ans.contains(key) ? "YES" : "NO");
    }
}

Go 解法, 执行用时: 4ms, 内存消耗: 1284K, 提交时间: 2023-08-10 10:19:37

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)
var n, m int
func main() {
	sc := bufio.NewScanner(os.Stdin)
	sc.Split(bufio.ScanWords)
	sc.Buffer(make([]byte, 1024*1024), 1024*1024)
	n, m = scanInt(sc), scanInt(sc)
	sc.Scan()
	s := sc.Text()
	sc.Scan()
	k := sc.Text()
	t := []rune{} 
	for _, v := range s {
		if v >= 'a' && v <= 'z' {
			t = append(t, v)
		}
	}
	if strings.Contains(string(t), k) {
		fmt.Print("YES")
	} else {
		fmt.Print("NO")
	}
}

func scanInt(scanner *bufio.Scanner) int {
	scanner.Scan()
	a, _ := strconv.Atoi(scanner.Text())
	return a
}

上一题