编程题练习@9-5

题目一:

题目描述
解析输入的字符串数组,提取出字符串中的时间戳信息,并且将字符串按照时间戳排序后,输出到控制台。

输入描述

第1行指定数组的size; 第2行到第n行,每行为一个独立的字符串,n为size的值。
每行的字符串由”/-:”和字母、数字组成,时间戳在字符串中的位置不确定时间戳格式为:2019-01-01T07:30:20,表示2019年1月1日,7点30分20秒时间为24小时制。

输出描述

将输入的字符串按照时间戳进行从小到大排序后,输出。 符合如下规则: 1、如果时间戳信息相同,按照字符串长度从小到大进行排序;
2、如果长度相同,则按照从首字符开始的ASCII码值比较,从小到大进行排序; 3、如果两个字符串完全一样,则只需要输出一个。

示例1
输入

5
my/2019-01-01T09:00:01
my/2019-01-01T09:00:01
abc/2018-12-24T08:00:00/test/you
1/2018-12-24T08:00:00/test/Test1
123/2018-12-24T08:00:09/test/me

输出

1/2018-12-24T08:00:00/test/Test1
abc/2018-12-24T08:00:00/test/you
123/2018-12-24T08:00:09/test/me
my/2019-01-01T09:00:01

size = int(input())
timestamps = []
for _ in range(size):timestamps.append(input())def custom_sort(timestamp):parts = timestamp.split("/")ts_index = Nonefor i, part in enumerate(parts):if "-" in part and "T" in part:ts_index = ibreakif ts_index is not None:ts = parts[ts_index]return (ts, len(timestamp), timestamp)else:return (timestamp, len(timestamp), timestamp)sorted_timestamps = sorted(timestamps, key=custom_sort)unique_timestamps = []
for ts in sorted_timestamps:if ts not in unique_timestamps:unique_timestamps.append(ts)for ts in unique_timestamps:print(ts)
1/2018-12-24T08:00:00/test/Test1
abc/2018-12-24T08:00:00/test/you
123/2018-12-24T08:00:09/test/me
my/2019-01-01T09:00:01

题目二:

题目描述
有一个很长的英文单词串,里面全是小写字母,请你统计一下里面长度大于等于k的单词一共出现了多少次,然后输出出现频率最高的那个单词。
如果有多解,输出长度较小的那一个,如果长度相同,输出字典序较小的那一个。

输入描述
第一行一个整数K,如题中描述。
第二行一个字符串str,只包含小写字母,长度不给出。
k<=50
len(str)<=100000

输出描述
一行一个字符串,表示满足长度大于等于h且频率最高的字符串,无解输出-1。

示例1

输入
2
abababababa

输出
ab

import collections# 输入K和字符串str
K = int(input())
str = input()# 获取字符串的长度
str_length = len(str)# 初始化结果列表
words = []# 遍历字符串,切割成所有长度大于等于K的子串
for i in range(str_length):for j in range(i + K, str_length + 1):substr = str[i:j]words.append(substr)# 创建一个字典来存储单词和它们的出现次数
word_count = collections.defaultdict(int)# 统计长度大于等于K的单词出现次数
for word in words:word_count[word] += 1# 找到出现频率最高的单词
if word_count:print(min(word_count, key=lambda x: (-word_count[x], len(x), x)))
else:print(-1)
ab

题目三:

题目描述
给定一个二叉树的根节点root,该树的节点值都在数字0-9之间,每一条从根节点到叶子节点的路径都可以用一个数字表示。
1 该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点
2 叶子节点是指没有子节点的节点
3 路径只能从父节点到子节点,不能从子节点到父节点
4 总节点数目为n

用例
输入
1
↙ ↘
2 3
输出
25

说明
例如根节点到叶子节点的一条路径是1->2->3,那么这条路径就用123来代替。 找出根节点到叶子节点的所有路径表示的数字之和。 例如这棵二叉树一共有两条路径根节点到叶子节点的路径1->2用数字12代替根节点到叶子节点的路径1->3用数字13代替所以答案为12+13=25。

# 原题是核心代码模式
class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef sumNumbers(root):def dfs(node, current_sum):if not node:return 0# 计算当前路径上的数字之和current_sum = current_sum * 10 + node.val# 如果是叶子节点,返回当前路径的数字之和if not node.left and not node.right:return current_sum# 否则,递归计算左子树和右子树的路径数字之和,并相加return dfs(node.left, current_sum) + dfs(node.right, current_sum)return dfs(root, 0)# 创建示例二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)# 计算根节点到叶子节点的所有路径表示的数字之和
result = sumNumbers(root)
print(result)
25

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

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

相关文章

Redis简易入门15招

Redis简易入门15招 1、Redis简介 REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo写的key-value存储系统 。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。…

机车整备场数字孪生 | 图扑智慧铁路

机车整备场是铁路运输系统中的重要组成部分&#xff0c;它承担着机车的维修、保养和整备工作&#xff0c;对保障铁路运输的运维和安全起着至关重要的作用。 随着铁路运输的发展、机车技术的不断进步&#xff0c;以及数字化转型的不断推进&#xff0c;数字孪生技术在机车整备场…

Android性能优化深入解析,将你的APP优化到极致的操作~

作为一个Android程序员&#xff0c;性能优化是无法避开的事情&#xff0c;并且性能优化也是Android中最有挑战的工作之一&#xff0c;更是每个工程师都需要掌握的核心技能。 性能问题和Bug不同&#xff0c;后者的分析和解决思路更清晰&#xff0c;很多时候从应用日志即可直接找…

地理信息系统概率笔记1

P1 地理信息系统概论 信息&#xff1a;用文本、数字、符号、语言、图像来传播&#xff1b; 地理信息&#xff1a;是表征地理系统诸要素的数量、质量、分布特征、相互联系和变化规律的数字、文字、图像和图形等的总称&#xff1b; 山川河流、城市楼栋、公路桥梁都是地理信息&am…

让开发回归简单模式-组件封装

对于工作年限不长的程序员来说&#xff0c;知识储备是非常关键的。在开发中各种技术的应用已经非常普遍了&#xff0c;例如常见的各种ORM,各种中间件如Redis&#xff0c;MQ等等&#xff0c;又如WebApi路由配置等等&#xff0c;对于常常做开发的程序员来说&#xff0c;都是小事&…

云原生架构如何助力大数据和AI技术在软件开发中的深度整合

文章目录 1. 云原生架构简介2. 大数据与云原生的融合a. 弹性计算和存储b. 容器化大数据应用c. 数据湖和数据仓库 3. AI与云原生的深度融合a. 弹性AI模型训练b. 容器化AI应用c. 自动化部署和监控 4. 对软件开发的影响a. 更快的开发周期b. 更低的成本c. 更高的灵活性和可伸缩性 5…

Revit SDK 介绍:GenericModelCreation常规模型的创建

前言 这个例子介绍了如何创建拉伸、放样、扫掠、融合、放样融合&#xff0c;涵盖了一个建模软件需要的基本建模方法。 内容 CreateExtrusion 生成的放样融合接口&#xff1a; m_creationFamily.NewExtrusion(true, curve, sketchPlane, bottomProfile, topProfile)核心逻辑&…

Android GB28181历史视音频文件检索

基于安卓系统的执法记录仪、智能头盔等设备&#xff0c;设备端录像、录像查询以及录像文件下载是必不可少的功能, 使用GB28181协议下载安卓设备上的录像文件, 检索录像文件是第一步, 先查询再下载&#xff0c;这里记录下我实现视音频文件检索的一些细节问题. 检索请求和查询结果…

pip安装mysqlclient报错 Exception: Can not find valid pkg-config name

今天docker内搭建python3.10环境时报这个错误&#xff0c;安装 mysqlclient 时报错。 WARNING: The directory /home/seluser/.cache/pip or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions…

【理解线性代数】(四)线性运算的推广与矩阵基础

1. 数值加法和乘法 数值加法与乘法&#xff0c;是小学数学课程中的基本数学运算。例如&#xff1a; 加法&#xff1a;112 乘法&#xff1a;2*24 在这个知识层次下&#xff0c;运算的基本单位是数字。 2. 从数值到向量 数值加法&#xff0c;可以看作一维空间中的向量加法&…

【SpringBoot】统一功能处理

目录 &#x1f383;1 拦截器 &#x1f380;1.1 拦截器的代码实现 &#x1f3a8;1.2 拦截器的实现原理 &#x1f9f6;2 拦截器应用——登录验证 &#x1f9ba;3 异常统一处理 &#x1f3ad;4 统一数据返回格式 &#x1f9e4;4.1 为什么需要统一数据返回格式 &#x1f9e3;4.2 统…

Spring Security - 基于内存快速demo

基于内存方式 - 只作学习参考1.引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>2.login.html、index.html、fail.htmllogin.html:<form method…

手写Spring:第1章-开篇介绍,手写Spring

文章目录 一、手写Spring二、Spring 生命周期 一、手写Spring &#x1f4a1; 目标&#xff1a;我们该对 Spring 学到什么程度&#xff1f;又该怎么学习呢&#xff1f; 手写简化版 Spring 框架&#xff0c;了解 Spring 核心原理&#xff0c;为后续再深入学习 Spring 打下基础。在…

0013Java程序设计-springboot教材图文内容审核系统

摘 要目 录第1章 绪论1.1 研究背景与意义1.2 研究内容1.3 论文组成结构 系统实现用户登录模块的实现后台管理系统登录模块的实现投稿信息的实现 开发环境 摘 要 《教材图文内容审核系统》课程案例库研究系统系统主要功能模块包括投稿信息、打卡记录、新闻资讯等&#xff0c;采…

MySQL加密的几种常见方式

MySQL提供了多种加密方式来保护数据的安全性。下面是几种常见的MySQL加密方式&#xff1a; 密码加密&#xff1a; MySQL5.7及以上版本使用SHA-256算法对密码进行加密。这种加密方式更安全&#xff0c;可以防止密码泄露。 之前的MySQL版本使用SHA-1算法进行密码加密。这种加密方…

Python UI自动化 —— pytest常用运行参数解析、pytest执行顺序解析

pytest常用Console参数&#xff1a; -v 用于显示每个测试函数的执行结果-q 只显示整体测试结果-s 用于显示测试函数中print()函数输出-x 在第一个错误或失败的测试中立即退出-m 只运行带有装饰器配置的测试用例-k 通过表达式运行指定的测试用例-h 帮助 首先来看什么参数都没加…

曾国藩农民出身,弯道超车实现逆袭的大智慧

曾国藩从小就笨笨的&#xff0c;读书多了才开窍&#xff0c;实现人生逆袭。农民出身&#xff0c;弯道超车&#xff0c;贵在坚持。 约翰生说过&#xff1a;“成大事不在于力量的大小&#xff0c;而在于能坚持多久。” 很多家长认为“不让孩子输在起跑线上”&#xff0c;这是错…

Minifilter过滤驱动与R3程序通讯实现文件保护

实现保护文件或目录、R3层通过与过滤驱动通讯通知要保护的文件或目录,可执行创建不可删除或修改。R3层 #include<Windows.h> #include<fltUser.h> #include<iostream> HANDLE g_hPort INVALID_HANDLE_VALUE;//初始化句柄 #define NPMINI_NAME L"Filei…

文件包含漏洞学习小结

目录 一、介绍 二、常见文件包含函数 三、文件包含漏洞代码举例分析 四、文件包含漏洞利用方式 4.1 本地文件包含 1、读取敏感文件 2、文件包含可运行的php代码 ①包含图片码 ②包含日志文件 ③包含环境变量getshell ④临时文件包含 ⑤伪协议 4.2 远程文件包含 4.…

数据结构与算法学习(day1)——简化版桶排序

文章目录 前言本章目标简化版桶排序题目一题目二 前言 &#xff08;1&#xff09;我是一个大三的学生&#xff08;准确来说应该是准大三&#xff0c;因为明天才报名哈哈哈&#xff09;。 &#xff08;2&#xff09;最近就想每天闲着没事也刷些C语言习题来锻炼下编程水平&#x…