首页 > 试题广场 >

字符串字符匹配

[编程题]字符串字符匹配
  • 热度指数:162113 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
判断短字符串S中的所有字符是否在长字符串T中全部出现。
请注意本题有多组样例输入。
数据范围:
进阶:时间复杂度:,空间复杂度:

输入描述:

输入两个字符串。第一个为短字符串,第二个为长字符串。两个字符串均由小写字母组成。



输出描述:

如果短字符串的所有字符均在长字符串中出现过,则输出字符串"true"。否则输出字符串"false"。

示例1

输入

bc
abc

输出

true

说明

其中abc含有bc,输出"true"
 
from collections import Counter
short_s = raw_input()
l_s = raw_input()
c1 = Counter(short_s)
c2 = Counter(l_s)
k1 = c1.keys()
k2 = c2.keys()
flag = set(c1).issubset(set(c2))
print('true' if flag else 'false')

发表于 2023-09-24 14:30:03 回复(0)
python 计数
# coding: utf-8
def func(s1,s2):
    lens = len(s1)
    count = 0
    for i in s1:
        if i in s2:
            count += 1
    if count == lens:
        print 'true'
    else:
        print 'false'
if __name__ == "__main__":
    import sys
    line1 = sys.stdin.readline().strip()
    line2 = sys.stdin.readline().strip()
    func(line1,line2)


发表于 2022-04-05 22:40:33 回复(0)
while True:
    try:
        str1 = input()
        str2 = input()
        str1 = list(str1)
        str1 = set(str1)#去除短项重复项
        str1 = list(str1)
        value = 'true'#预设为true
        for i in range (len(str1)):#逐个查找
            if str1[i] not in str2:#一旦有一个不存在则返回false
                value = 'false'
                break
        print(value)
    except:
        break

发表于 2021-06-30 22:03:43 回复(0)
while True:
    try:
        shortstr = input()
        longstr = input()
        while shortstr:
            if shortstr[0] not in longstr:
                print('false')
                break
            else:
                shortstr = shortstr[1:]
        if not shortstr:
            print('true')
    except:
        break
发表于 2021-04-21 07:49:03 回复(0)
while True:
    try:
        short = input()
        long = input()
        flag = 1
        for x in short:
            if x not in long:
                flag = 0
        if flag == 1:
            print('true')
        elif flag == 0:
            print('false')
    except EOFError:
        break

发表于 2021-03-26 23:36:19 回复(0)
遍历元素:
while True:
    try:
        a,b=input(),input()
        for i in a:
            if i not in b:
                print("false")
                break
        else:print('true')
    except:
        break
发表于 2021-03-25 00:05:52 回复(0)
while True:
    try:
        nx1=input()
        nx2=input()
        flag='true'
        for i in nx1:
            if i not in nx2:
                flag='false'
                break
        print(flag)
    except:
        break

发表于 2021-03-02 22:04:04 回复(0)
while True:
    try:
        s ,l = input(),input()
        sign = 0
        if len(s)>len(l):
            s , l = l , s
        for i in s:
            if i not in l:
                sign = 1
                break
        print('true') if sign == 0 else print('false')
    except:
        break
发表于 2021-01-12 14:32:46 回复(0)
while True:
    try:
        a, b = input(), input()
        print("false" if set(a)-set(b) else "true")
    except:
        break
            

发表于 2020-12-18 16:03:57 回复(0)
# 方法一:
# 思路:笨方法,拿短字符串中的每个字符去长字符串中看是否含有
while True:
    try:
        str1 = input().strip()
        str2 = input().strip()
        all_in = True
        for ch in str1:
            if ch not in str2:
                all_in = False
                break
        if all_in:
            print("true")
        else:
            print("false")
    except:
        break

# 方法二:
# 思路:巧方法,利用集合去重,集合的包含关系可以用>,<来表达
while True:
    try:
        set1, set2 = set(input().strip()), set(input().strip())
        print('true' if set1 <= set2 else 'false')
    except:
        break

发表于 2020-12-03 21:24:28 回复(0)
while True:
    try:
        strShort = input()
        strLong = input()
        AllIn = 1;
        for s in strShort:
            if s not in strLong:
                AllIn = 0
        if AllIn:
            print('true')
        else:
            print('false')
    except:
        break
用一个标记AllIn进行标记即可。
发表于 2020-07-21 13:12:20 回复(0)
while True:
    try:
        s1 = input()
        lens = len(s1)
        s2 = input()
        count = 0
        for i in s1:
            if i in s2:
                count += 1
        print(str(count==lens).lower())
    except:
        break
发表于 2020-06-04 21:16:54 回复(0)
while 1:
    try:
        str1, str2 = set(input()), set(input())
        print(str.lower(str(str1<=str2)))
    except:
        break

本来想着不用in的方法做,换成set的子集判断方法来做换个新思路,结果发现讨论区里python方案基本都这么干的哈哈哈
发表于 2020-05-26 21:24:00 回复(0)

用set就可以。。。
while True:
    try:
        s1 = set(input())
        s2 = set(input())
        x = 'true' if s1 & s2 == s1 else 'false'
        print(x)
    except:
        break

为什么换成string就不行? case通过率只有20%
while True:
    try:
        s1 = str(input())
        s2 = str(input())
        x = 'true' if s1 in s2 else 'false'
        print(x)
    except:
        break

发表于 2020-05-09 17:35:38 回复(0)

python一行

  • 使用set判断子集
    while 1:
      try:
          print("true" if set(input()) <= set(input()) else "false")
      except:
          break
发表于 2020-05-05 00:32:49 回复(0)
while True:
    try:
        str_a,str_b = input(),input()
        count = 0
        for i in str_a:
            if i in str_b:
                count +=1
        if len(str_a) == count:
            print("true")
        else:
            print("false")
    except:
        break

发表于 2020-02-13 17:23:18 回复(0)
while 1:
    try:
        a = input()
        b = input()
        res = 0
        for i in  range(len(a)):
            if a[i] not in b:#这里若用find函数,应写成:if b.find(a[i]) == -1:
                print('false')
                break
            else:
                res += 1
        if res == len(a):
            print('true')
    except:
        break

发表于 2020-01-31 14:10:53 回复(0)
# -*- coding: utf-8 -*-
# !/usr/bin/python3


def is_all_char_exist(lst1, lst2):
    m = len(st1)
    for i in range(m):
        if lst1[i] not in st2:
            return False

    return True


while True:
    try:
        st1 = input()
        st2 = input()

        if is_all_char_exist(st1, st2):
            print('true')
        else:
            print('false')

    except:
        break

发表于 2019-11-20 23:27:54 回复(0)