OJ 【难度1】【Python】完美字符串 扫雷 A-B数对 赛前准备 【C】精密计时

news2025/2/24 17:11:46

完美字符串

题目描述

你可能见过下面这一句英文:

"The quick brown fox jumps over the lazy dog."

短短的一句话就包含了所有 2626 个英文字母!因此这句话广泛地用于字体效果的展示。更短的还有:

"The five boxing wizards jump quickly."

所以你很好奇:还有没有更多这样包含所有 2626 个英文字母的句子?于是你用爬虫在互联网上爬取了许多英文文本,并且提取出了其中的单词。你现在希望从一个很长的单词序列中找出一段连续出现的单词,它满足:

  • 所有 2626 个英文字母都至少出现一次;
  • 长度尽可能短,即包含的字母总数尽可能少。

输入

输入的第一行包含一个整数 �n,代表单词序列的长度,即单词的数量。

输入的第二行包含 �n 个空格分隔的英文单词(单词仅由小写字母构成)。输入数据保证每个小写英文字母都至少出现一次。

输出

输出一行一个整数,是你找到的单词序列中的字母总数。

样例输入1

13 there is a quick brown fox jumping over the lazy dog and cat

样例输出1

37

提示

最短满足条件的单词序列是 "is a quick brown fox jumping over the lazy dog",共有 3737 个字母。

对于 40%40% 的数据,满足 �≤100n≤100;
对于 100%100% 的数据,满足 1≤�≤100,0001≤n≤100,000。每个单词的长度不超过 1010 个字符,且单词全部由小写英文字母 a-za-z 构成。

# coding=utf-8
n = int(input())
list_string = list(map(str, input().split()))
sum_min = 1000000
for i in range(n - 2):
    begin, sum_this = i, 0
    dct = {}
    while len(dct) < 26 and begin < n:
        for j in list_string[begin]:
            for index in range(len(j)):
                if j[index] in dct.keys():
                    dct[j[index]] += 1
                else:
                    dct[j[index]] = 1
                sum_this += 1
        begin += 1
    if sum_this < sum_min and len(dct) == 26:
        sum_min = sum_this
print(sum_min)

扫雷游戏

# coding=utf-8
def the_sum(lst, hang_max, lie_max, index_h, index_l):
    sum1 = 0
    if 0 <= index_h - 1 < hang_max and lst[index_h - 1][index_l] == '*':
        sum1 += 1
    if 0 <= index_h + 1 < hang_max and lst[index_h + 1][index_l] == '*':
        sum1 += 1
    if 0 <= index_l + 1 < lie_max and lst[index_h][index_l + 1] == '*':
        sum1 += 1
    if 0 <= index_l - 1 < lie_max and lst[index_h][index_l - 1] == '*':
        sum1 += 1
    if 0 <= index_h - 1 < hang_max and 0 <= index_l + 1 < lie_max and lst[index_h - 1][index_l + 1] == '*':
        sum1 += 1
    if 0 <= index_h - 1 < hang_max and 0 <= index_l - 1 < lie_max and lst[index_h - 1][index_l - 1] == '*':
        sum1 += 1
    if 0 <= index_h + 1 < hang_max and 0 <= index_l + 1 < lie_max and lst[index_h + 1][index_l + 1] == '*':
        sum1 += 1
    if 0 <= index_h + 1 < hang_max and 0 <= index_l - 1 < lie_max and lst[index_h + 1][index_l - 1] == '*':
        sum1 += 1
    return sum1


n, m = map(int, input().split())
lst_total = []
for i in range(n):
    lst_one = input()
    lst_total.append(lst_one)
lst_total_print = []
for i in range(n):
    lst_one_print = []
    for j in range(m):
        if lst_total[i][j] == '*':
            lst_one_print.append('*')
        else:
            k = the_sum(lst_total, n, m, i, j)
            lst_one_print.append(k)
    lst_total_print.append(lst_one_print)
for i in lst_total_print:
    for j in i:
        print(j, end='')
    print()

A-B数对

# coding=utf-8
N, C = map(int, input().split())
lst = list(map(int, input().split()))
count = 0
for i in lst:
    for j in lst :
        if i - j == C and i != j:
            count += 1
print(count)

赛前准备

感觉这道题的检测机制有点问题,可能是随机情况太多了,不可能和测试案例一模一样吧,尝试了很久都通过不了,不过还是有学到东西的

知识点:

1.对于range()函数,如果想生成逆序,必须是这种格式range(11,1,-1),不然无法正常生成

2.对于不在意的变量,就是我们不需要用到该变量名的时候可以用_代替

3.列表推导式可以直接生成(这道题不生成列表也可以,只是这样更直观)

解题思路如注释所示

t = int(input())
for i in range(t): # for _ in range(t):
    n, k = map(int, input().split())
    # n=6
    # 6 5 4 3 2 1
    # k=2
    # 1 2 6 5 4 3
    lst = [x for x in range(n, 0, -1)]
    if k != 0:
        for head in range(0, k):
            print(lst[n - head - 1], end=' ')
        for yuan in range(0, n - k):
            print(lst[yuan], end=' ')
    else:
        for one in lst:
            print(one, end=' ')
    print()

精密计时

事实证明使用long long int 不会超过范围

#include<stdio.h>
long long int the_sum(int a1, int b1, int c1){
  long long int sum;
  //总共有多少秒
  sum=c1+b1*60+a1*3600;
  return sum;
}
int main(){
  int a1,b1,c1,d1,a2,b2,c2,d2;
  long long int sum1,sum2,total;
  scanf("%d:%d:%d.%d %d:%d:%d.%d",&a1,&b1,&c1,&d1,&a2,&b2,&c2,&d2);
  sum1=the_sum(a1,b1,c1);
  sum2=the_sum(a2,b2,c2);
  total=(sum2-sum1)*100+(d2-d1);
  printf("%lld",total);
  return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1585925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【我的小工具】生成React页面类

有了数据表的结构信息&#xff0c;就能生成React 的页面类&#xff0c;快捷方便。 生成界面如下&#xff1a; 生成的React FrmUser.js页面如下&#xff1a; 只需再写里面的操作逻辑代码。

存储革新:下一代低功耗PCM相变存储器

引言 由于Optane&#xff08;实质为PCM相变存储器&#xff09;被intel放弃以后&#xff0c;小编一直在关注业内有关SCM存储级内存&#xff08;PCM、ReRAM等&#xff09;相关的研究进展。比如之前发布的内容&#xff0c;供存储随笔的读者参考&#xff01; 字节跳动入局存储内存…

如何应用电桥电路的原理?

电桥电路是一种常用的测量技术&#xff0c;它利用了四个电阻的网络来检测电路的平衡状态。在平衡状态下&#xff0c;电桥的输出电压为零&#xff0c;这种特性使得电桥电路非常适合于精确测量电阻、电感、电容等电气参数&#xff0c;以及用于传感器和测量设备中。以下是电桥电路…

第十二届蓝桥杯真题做题笔记

2、卡片 笔记&#xff1a; 直接巧用排列组合求解即可&#xff1a; 我们通过对样例说明进行分析可知&#xff1a;想要分给n个小孩&#xff0c;那么我们就需要满足C(K, 2) K > n才能满足。 #include<bits/stdc.h> using namespace std;int com(int up, int down){i…

从文字到思维:呆马GPT在人工智能领域的创新之旅

引言 生成式预训练变换器&#xff08;Generative Pre-trained Transformer&#xff0c;简称GPT&#xff09;领域是人工智能技术中的一大革新。自OpenAI推出第一代GPT以来&#xff0c;该技术经历了多代发展&#xff0c;不断提升模型的规模、复杂度和智能化程度。GPT模型通过在大…

AI大模型日报#0411:国内首款音乐大模型、面壁智能数亿融资、MyScale AI开源

导读&#xff1a; 欢迎阅读《AI大模型日报》&#xff0c;内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。 ​标题: 大模型做时序预测也很强&#xff01;华人团队激活LLM新能力&#xff0c;超越一众传统模型实现SOTA 摘要: 大语言模型通过新提…

从零开始学Spring Boot系列-集成MyBatis-Plus

在Spring Boot应用开发中&#xff0c;MyBatis-Plus是一个强大且易于使用的MyBatis增强工具&#xff0c;它提供了很多实用的功能&#xff0c;如代码生成器、条件构造器、分页插件等&#xff0c;极大地简化了MyBatis的使用和配置。本篇文章将指导大家如何在Spring Boot项目中集成…

git学习 1

打开自己想要存放git仓库的文件夹&#xff0c;右键打开git bush&#xff0c;用git init命令建立仓库 用 ls -a(表示全都要看&#xff0c;包括隐藏的)可以看到git仓库 也可以用 git clone 接github链接&#xff08;点code选项里面会给链接&#xff0c;结尾是git的那个&#xf…

如何用Java后端处理JS.XHR请求

Touching searching engine destroies dream to utilize php in tomcat vector.The brave isn’t knocked down&#xff0c;turn its path to java back-end. Java Servlet Bible schematic of interaction between JS front-end and Java back-end Question 如何利用Java…

自动驾驶定位算法-粒子滤波(Particle Filter)

自动驾驶定位算法-粒子滤波(Particle Filter) 自动驾驶对定位的精度的要求在厘米级的&#xff0c;如何实现厘米级的高精度定位呢&#xff1f;一种众所周知的定位方法是利用全球定位系统(GPS)&#xff0c;利用多颗卫星的测量结果&#xff0c;通过三角测量(Triangulation)机制确…

【Web】NSSRound#1-20 Basic 刷题记录(全)

目录 [NSSRound#1 Basic]basic_check [NSSRound#1 Basic]sql_by_sql [NSSCTF 2nd]php签到 [NSSCTF 2nd]MyBox [NSSCTF 2nd]MyBox(revenge) [NSSCTF 2nd]MyHurricane [NSSCTF 2nd]MyJs [NSSRound#3 Team]This1sMysql [NSSRound#3 Team]path_by_path [NSSRound#…

vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅱ)搜索及数据获取配置项

搜索及数据获取配置项 搜索及数据获取配置项属性&#xff1a; noSearchModel&#xff08;无表单搜索标识&#xff09;属性&#xff1a;changeToSearch&#xff08;表单change事件是否触发搜索 &#xff09;属性&#xff1a; changeParams&#xff08;参数预处理【可异步】 &…

游戏行业科普 (二)游戏是怎么做出来,怎么卖出去的?

游戏行业科普系列文章&#xff0c;大家可以关注起来&#xff0c;等我慢慢芬分享~~ 《蛋仔派对》 一、研运流程--游戏是怎么做出来的 一款游戏的开发和运营大体上可以分为预研立项、设计开发、测试调优、发行上线和成熟运营几个阶段。 1&#xff09;预研立项&#xff1a; 初始研…

Lumos学习王佩丰Excel第二讲:单元格格式设置

今天学会GIF录制了&#xff0c;分享知识会更简便一些&#xff0c;话不多说&#xff0c;开始吧~ 一、美化表格 1、设置单元格格式的路径 从菜单栏进入&#xff1a; 选中区域&#xff08;单元格&#xff09;- 右键“设置单元格格式”&#xff1a; 2、合并单元格 合并一行 批量…

SpringCloudAlibaba之nacos的服务注册与发现

Nacos的服务注册与发现 照例放个妹子 本章节讲解nacos的服务注册与发现的简单使用 如图所示&#xff1a;按照图示搭建一个nacos作为服务注册中心的简单应用 创建provider服务提供者 创建nacos-discovery-provider模块引入依赖 <dependencies><dependency><…

【vue-qrcode + html2canvas】前端二维码生成与下载

一、前言 其实一开始搜的时候&#xff0c;很多还都是推荐的 vue-qrcode&#xff0c;于是就先用这个&#xff0c;但是发现想要在二维码中间放一个自定义的image的时候&#xff0c;这个库有点麻烦&#xff0c;需要自己将 image 图片盖在二维码上面&#xff08;官方教程也是如此&…

从0到1实现RPC | 09 故障隔离与恢复

一、应用场景 故障隔离解决的是&#xff1a;当服务提供者provider出现异常时&#xff0c;消费者consumer就不再调用异常实例&#xff0c;而是选择好的实例&#xff0c;避免频繁出错。 故障恢复解决的是&#xff1a;一段时间过后&#xff0c;服务提供者provider可以正常提供服…

AWS游戏全球智能翻译,助力企业出海

随着全球数字化时代的到来&#xff0c;游戏行业已经成为跨越国界、语言和文化的强大力量。然而&#xff0c;要将游戏产品成功推向全球市场并确保用户体验的流畅与愉悦&#xff0c;语言障碍却是一道不可忽视的挑战。在这个多元化的世界中&#xff0c;如何解决语言障碍&#xff0…

openGauss学习笔记-260 openGauss性能调优-使用Plan Hint进行调优-同层参数化路径的Hint

文章目录 openGauss学习笔记-260 openGauss性能调优-使用Plan Hint进行调优-同层参数化路径的Hint260.1 功能描述260.2 语法格式260.3 示例 openGauss学习笔记-260 openGauss性能调优-使用Plan Hint进行调优-同层参数化路径的Hint 260.1 功能描述 通过predpush_same_level Hi…

学习C++有没有必要学习boost库?

在深入学习C这一强大且灵活的编程语言的过程中&#xff0c;是否有必要学习Boost库是许多开发者会面临的一个重要问题。Boost库&#xff0c;被誉为C的“瑞士军刀”&#xff0c;以其丰富的工具集和强大的功能性深受广大C程序员的喜爱。本文将就此问题进行详细的探讨。 一、Boost…