华为OD机试真题-最长子字符串的长度(一)-2023年OD统一考试(C卷)---Python3--开源

题目:
在这里插入图片描述

考察内容:
思路转化:求出o字母出现偶次(o的索引);环形–双倍字母;
方法1:循环变量双倍字母(保证环线),记录最大偶次,如果是,则记录left和并替换left位置,并添加子字符串;
方法2:直接求出双倍字母的索引,根据最大偶次,循环遍历索引求出子字符串。
代码:

"""
analyze:
环形如何实现:
偶次(0也包括)
aloloboalolobo-- alolob;loboal;boalol; alolob

input:
小写字母字符串

output:
int, o字母出现偶数次
eg:
alolobo
6

looxdolx
7
way:
把所有还有两个0的子字符串求出来

根据o的索引获取(先求出最大偶数)

"""

# s_temp = input()
#
# if "o" not in s_temp:
#     print(len(s_temp))
# else:
#     o_res = 0
#     temp_list = list()
#     o_num = s_temp.count("o")
#     # 取最大偶数
#     if o_num % 2 != 0:
#         o_num = o_num - 1
#     # print(o_num)
#     double_s = s_temp*2
#     left, right = 0, 0
#     o_index = 0
#     for i in range(len(double_s)):
#         if double_s[i] == "o":
#             o_res += 1
#             if o_res <= o_num:
#                 pass
#                 # right += 1
#             else:
#                 if double_s[left:i] not in temp_list:
#                     temp_list.append(double_s[left:i])
#                 left = double_s.find("o", o_index) + 1
#                 o_index = left
#                 # right += 1
#                 o_res = 2
#         elif o_res <= o_num:
#             pass
#             # right += 1
#     max_str = 0
#     for temp in temp_list:
#         max_str = max(0, len(temp))
#     print(temp_list, max_str)

# 优化
# s_temp = input()
#
# if "o" not in s_temp:
#     print(len(s_temp))
# else:
#     o_res = 0
#     temp_list = list()
#     o_num = s_temp.count("o")
#     # 取最大偶数
#     if o_num % 2 != 0:
#         o_num = o_num - 1
#     double_s = s_temp * 2
#     left, right = 0, 0
#     o_index = 0
#     for i in range(len(double_s)):
#         if double_s[i] == "o":
#             o_res += 1
#             if o_res > o_num:
#                 if double_s[left:i] not in temp_list:
#                     temp_list.append(double_s[left:i])
#                 # 获取o的索引
#                 left = double_s.find("o", o_index) + 1
#                 o_index = left
#                 o_res = 2
#     max_str = 0
#     for temp in temp_list:
#         max_str = max(0, len(temp))
#     print(temp_list, max_str)

# 方法根据o的索引获取

s_temp = input()

if "o" not in s_temp:
    print(len(s_temp))
else:
    o_res = 0
    temp_index_list = list()
    o_num = s_temp.count("o")
    o_index = 0
    double_s = s_temp * 2
    print(double_s)
    for i in range(o_num*2):
        index = double_s.find("o", o_index)
        o_index = index + 1
        temp_index_list.append(index)
    print(temp_index_list)
    # 取最大偶数
    if o_num % 2 != 0:
        o_num = o_num - 1
    res = list()
    left, right = 0, 0
    for i in range(len(temp_index_list)):
        if i+o_num < len(temp_index_list):
            res.append(double_s[left:temp_index_list[i+o_num]])
            # print(double_s[left:temp_index_list[i+2]])
            left = temp_index_list[i]+1
    print(res)










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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL之Pt-kill工具

工具下载 [rootlocalhost1 bin]# wget percona.com/get/percona-toolkit.tar.gz [rootlocalhost1 bin]# yum install perl-DBI [rootlocalhost1 bin]# yum install perl-DBD-MySQL [rootlocalhost1 bin]# ./pt-kill --help1、每10秒检查一次&#xff0c;发现有 Query 的进程就…

如何在有限的预算里做好服务器的DDOS防护?

在网络安全领域&#xff0c;防御分布式拒绝服务&#xff08;DDoS&#xff09;攻击是一项持续且复杂的挑战。尤其对于预算有限的组织来说&#xff0c;如何在不牺牲安全性的前提下进行有效的防护&#xff0c;更是一个需要深思熟虑的问题。以下是一些建议&#xff0c;帮助你在有限…

QT C++实现点击按键弹出窗口并显示图片/视频|多窗口应用程序的设计和开发

一、介绍 首先&#xff0c;QT界面开发中主要大体分为2种多窗口的形式&#xff1a; 嵌入式&#xff1a; 新生成的窗口嵌入在主窗口内部独立窗口&#xff1a; 以弹窗形式的新窗口生成和展示 这里就讲解最简单的&#xff1a;点击案件后&#xff0c;跳出一个新窗口 二、代码实…

%00截断 [GKCTF 2020]cve版签到

打开题目 F12之后在Headers中发现hint 两者结合利用零字符截断使get_headers()请求到本地127.0.0. 结合链接 构造 ?urlhttp://127.0.0.1%00www.ctfhub.com 必须以123结尾 ?urlhttp://127.0.0.123%00www.ctfhub.com 得到flag 知识点&#xff1a; PHP中get_headers函数 g…

python爬虫实战:获取电子邮件和联系人信息

引言 在数字时代&#xff0c;电子邮件和联系人信息成为了许多企业和个人重要的资源&#xff0c;在本文中&#xff0c;我们将探讨如何使用Python爬虫从网页中提取电子邮件和联系人信息&#xff0c;并附上示例代码。 目录 引言 二、准备工作 你可以使用以下命令来安装这些库&a…

【pytorch】常用代码

文章目录 条件与概率torch.tensor()torch.rand()torch.randn()torch.randint()torch.multinominal() 逻辑运算torch.argmax()torch.max()torch.sum()torch.tanh()torch.pow() 功能性操作 torch.nn.functionalF.normalize()F.elu()F.relu()F.softmax() 张量计算torch.zeros()tor…

OpenHarmony分布式购物车案例展示~

简介 分布式购物车demo 模拟的是我们购物时参加满减活动&#xff0c;进行拼单的场景&#xff1b;实现两人拼单时&#xff0c;其他一人添加商品到购物车&#xff0c;另外一人购物车列表能同步更新&#xff0c;且在购物车列表页面结算时&#xff0c;某一人结算对方也能实时知道结…

苹果设备再现完美兼容32位软件 只需一款神奇工具 CrossOver 24发布:基于 Wine 9.0,能让 Mac 初步运行 32位应用

近日&#xff0c;CodeWeavers发布了CrossOver 24版本的更新。这次的更新是基于最新的Wine 9.0版本而进行的。这一版本的更新不仅能够兼容更多应用程序和游戏&#xff0c;而且还可以初步支持运行32位的应用程序。 自从苹果在macOS Catalina系统中移除对32位软件的支持之后&…

【Git】Git命令的学习与总结

本文实践于 Learn Git Branching 这个有趣的 Git 学习网站。在该网站&#xff0c;可以使用 show command 命令展示所有可用命令。你也可以直接访问网站的sandbox&#xff0c;自由发挥。 一、本地篇 基础篇 git commit git commit将暂存区&#xff08;staging area&#xff…

Outlook邮箱配置步骤?如何配置电子邮箱?

Outlook邮箱配置的方法&#xff1f;Outlook邮箱配置SMTP的方法&#xff1f; Outlook邮箱配置不仅能够帮助我们高效地管理邮件&#xff0c;还可以提供日程安排、联系人管理等多项功能。那么&#xff0c;如何配置Outlook邮箱呢&#xff1f;接下来&#xff0c;蜂邮EDM将为大家详细…

mac安装zookeeper

下载地址&#xff1a; http://archive.apache.org/dist/zookeeper/ 注意&#xff1a;由于Zookeeper从3.5.5版本开始&#xff0c;带有bin名称的包才是我们想要的下载可以直接使用的里面有编译后的二进制的包&#xff0c;而之前的普通的tar.gz的包里面是只是源码的包无法直接使…

HUAWEI Programming Contest 2024(AtCoder Beginner Contest 342)

D - Square Pair 题目大意 给一长为的数组&#xff0c;问有多少对&#xff0c;两者相乘为非负整数完全平方数 解题思路 一个数除以其能整除的最大的完全平方数&#xff0c;看前面有多少个与其余数相同的数&#xff0c;两者乘积满足条件&#xff08;已经是完全平方数的部分无…

微信小程序蓝牙通信HC08

总结这两天研究的蓝牙串口。人话版资料不多&#xff0c;主要靠翻别人的仓库和文档。 单片机部分&#xff0c;与蓝牙串口通信是通过串口。比我想的要简单&#xff0c;小程序部分&#xff0c;有非常多的服务和特征&#xff0c;而且人话版资料不多。 如果本文有什么问题&#xf…

AI之T2I:Stable Diffusion 3的简介、安装和使用方法、案例应用之详细攻略

AI之T2I&#xff1a;Stable Diffusion 3的简介、安装和使用方法、案例应用之详细攻略 目录 Stable Diffusion 3的简介 1、效果测试 官方demo 网友提供 Stable Diffusion 3的安装和使用方法 1、安装 2、使用方法 Stable Diffusion 3的案例应用 1、基础案例 Stable Diff…

RestTemplate启动问题解决

⭐ 作者简介&#xff1a;码上言 ⭐ 代表教程&#xff1a;Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容&#xff1a;个人博客系统 ⭐我的文档网站&#xff1a;http://xyhwh-nav.cn/ RestTemplate启动问题解决 问题&#xff1a;在SpringCloud架构项目中配…

Vue实现登录保存token并校验实现保存登录状态

文章目录 一、登录vue二、路由index 一、登录vue <script> import request from "/axios/baseURL"; import router from "/router";// 接口数据初始化 const FORM_DATA {userName: "",password: "", }; export default {data(…

腾讯文档(excel也一样)设置单元格的自动行高列宽

1. 选中单元格 可选择任意一个或者几个 2. 设置自动 行高和列宽 即可生效

掌握微信小程序开发的核心要点:从基础到进阶

文章目录 掌握微信小程序开发的核心要点&#xff1a;从基础到进阶一、数据绑定和事件处理1.1 理解小程序的数据绑定机制&#xff0c;实现数据和视图的同步更新1.2 学习如何处理用户交互事件和触发相应的响应逻辑 二、网络请求和数据交互2.1 使用小程序的网络请求API与后端服务器…

unity发布webGL压缩方式的gzip,使用nginx作为web服务器时的配置文件

unity发布webGL压缩方式的gzip&#xff0c;使用nginx作为web服务器时的配置文件 Unity版本是&#xff1a;2021.3 nginx的版本是&#xff1a;nginx-1.25.4 Unity发布webgl时的测试 设置压缩方式是gzip nginx配置文件 worker_processes 1;events {worker_connections 102…

vue项目打包获取git commit信息并输出到打包后的指定文件夹中

需求背景&#xff1a; 前端项目经常打包&#xff0c;发包部署&#xff0c;为了方便测试及运维发现问题时与正确commit信息对比 实现方式&#xff1a; 使用Node.js的child_process模块来执行git命令 实现步骤&#xff1a; 1.在package.json的同级目录下新建一个version.js文件。…