华为机试-081-简单-HJ81.字符串字符匹配
一、描述
判断短字符串S中的所有字符是否在长字符串T中全部出现。
请注意本题有多组样例输入。
数据范围: 1 ≤ len(S) , len(T) ≤ 200
进阶:时间复杂度:O(n) ,空间复杂度:O(n)
1.1、输入描述
输入两个字符串。第一个为短字符串,第二个为长字符串。两个字符串均由小写字母组成。
1.2、输出描述
如果短字符串的所有字符均在长字符串中出现过,则输出字符串"true"。否则输出字符串"false"。
二、示例
2.1、示例1
输入:
bc
abc
输出:
true
说明:
其中abc含有bc,输出"true"
三、答案(java)
3.1、方法一
Set 轻松解决
package com.tzq.hwod;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public Main() {
}
public boolean isAllCharExist(String pShortString, String pLongString) {
Set<Character> set = new HashSet<>();
for (char ch : pLongString.toCharArray()) {
set.add(ch);
}
for (char ch : pShortString.toCharArray()) {
if (!set.contains(ch)) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Main solution = new Main();
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String pShortString = in.nextLine();
String pLongString = in.nextLine();
boolean res = solution.isAllCharExist(pShortString, pLongString);
System.out.println(res);
}
}
}
四、答案(python 3)
4.1、方法一
#!/usr/bin/python
# -*- coding: UTF-8 -*-
while True:
try:
S, T = input(), input()
if set(S) & set(T) == set(S):
print('true')
else:
print('false')
except:
break