python编程题解答: <成步堂龙一> 是一名律师。在法庭开庭时,他需要出示手中的证物来击破他的老对手,检察官 <御剑怜侍> 询问的各个疑点, 以此证明委托人(被告)的清白。 检察官有一张询问清单 s,s中是是n个长度不超过20的字符串,代表所有的质询。 成步堂手上有一张证物清单s2, s2是一个长度不超过20的字符串。 已知,若质询是证物清单的子单,那么该质询会被击破。证物清单可以使用多次。同时,成步堂可以将思路逆转过来,若将质询逆转后是证物清单的子单,该质询也会被击破。 请问,成步堂能否击破检察官提出的所有质询? 输入格式: 第一行是一个正整数n,代表质询的总数。 第2-n+1行是n个字符串,代表每个质询。 第n+2行是一个字符串s2,代表物证清单。 输出格式: 输出共一行,若能完成大逆转(将所有质询击破),输出“Objection!”;否则,输出检查官剩余的质询数量。 输入样例1: 2 cba abc bbbbbabcaaaa 输出样例1: Objection! 输入样例2: 3 aaabbbcccabc aaabbbccc bacabc aaabacabc 输出样例2: 2

时间: 2024-03-20 19:44:28 浏览: 10
这是一道字符串匹配问题。我们可以遍历所有质询,检查它们是否是证物清单的子单或者逆转后是证物清单的子单。如果所有质询都能被击破,那么成步堂就能完成大逆转。否则,输出剩余的质询数量。 代码如下: ```python def is_subseq(s, t): """判断s是否是t的子序列""" i = j = 0 while i < len(s) and j < len(t): if s[i] == t[j]: i += 1 j += 1 return i == len(s) def reverse(s): """返回s的逆序字符串""" return s[::-1] n = int(input()) queries = [input().strip() for i in range(n)] evidence = input().strip() count = 0 for query in queries: if is_subseq(query, evidence) or is_subseq(reverse(query), evidence): count += 1 if count == n: print("Objection!") else: print(n-count) ``` 时间复杂度为$O(n\times L)$,其中$n$是质询的总数,$L$是质询的平均长度。
相关问题

Python中for语句的格式为:for <变量> in <序列>: 其中,<序列>必须指向一个可迭代的对象。

没错,Python中的for语句用于循环遍历可迭代对象中的每一个元素。具体格式为: ```python for <变量> in <序列>: <代码块> ``` 其中,`<变量>`是用来存储当前迭代的元素的变量名,每次迭代时都会被赋值为序列中的下一个元素。`<序列>`必须是一个可迭代的对象,如列表、元组、字符串等。 在for循环内部的代码块中,你可以使用这个变量对当前迭代的元素进行操作。每次迭代时,这个代码块都会被执行一次,直到序列中的所有元素都被遍历完毕为止。

std::vector<std::vector<cv::Point>> all_curves;用python语言表示这句话

这句话的意思是定义了一个名为all_curves的二维向量,其中每个元素都是一个由cv::Point构成的一维向量。在Python中,可以使用numpy库中的ndarray来表示二维向量,因此可以使用以下代码表示: ```python import numpy as np all_curves = np.ndarray(shape=(0,), dtype=np.object) ``` 其中,shape参数表示初始时all_curves为空,dtype参数表示每个元素的类型为Python对象。在需要添加元素时,可以使用以下代码: ```python curve = np.ndarray(shape=(0,), dtype=np.object) all_curves = np.append(all_curves, [curve]) ``` 其中,curve表示需要添加的一维向量。若需要访问all_curves中的元素,可以使用以下代码: ```python curve = all_curves[i] ``` 其中,i表示需要访问的元素的下标。可以使用len()函数获取all_curves中元素的个数。

相关推荐

最新推荐

recommend-type

2020全国青少年软件编程(python)等级考试试卷(一级).docx

2020全国青少年软件编程(python)等级考试试卷(一级).docx
recommend-type

Python编程一级试卷1.docx

青少年编程能力等级测评线上测评服务平台是互联网技术、信息安全技术、人工智能技术的综合应用体现。目前,经过行业专家的指导把关,在专业团队的辛勤开发下,与测评项目配套的测评服务平台及信息化系统已经研发并...
recommend-type

Python编程判断这天是这一年第几天的方法示例

本文实例讲述了Python编程判断这天是这一年第几天的方法。分享给大家供大家参考,具体如下: 题目:输入某年某月某日,判断这一天是这一年的第几天? 实现代码: year=int(input('请输入年:')) month=int(input('请...
recommend-type

使用Python向DataFrame中指定位置添加一列或多列的方法

今天小编就为大家分享一篇使用Python向DataFrame中指定位置添加一列或多列的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

Python编程实现数学运算求一元二次方程的实根算法示例

主要介绍了Python编程实现数学运算求一元二次方程的实根算法,涉及Python数学运算求解方程的相关实现技巧,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。