拼接url - 华为OD统一考试

OD统一考试

分值: 100分

题解: Java / Python / C++

alt

题目描述

给定一个 url 前缀和 url 后缀, 通过 “,” 分割, 需要将其连接为一个完整的 url 。

如果前缀结尾和后缀开头都没有 /,需要自动补上 / 连接符;

如果前缀结尾和后缀开头都为 /,需要自动去重;

约束: 不用考虑前后缀 URL 不合法情况。

输入描述

url 前缀(一个长度小于 100 的字符串),url 后缀 (一个长度小于100 的字符串)

输出描述

拼接后的url

示例1

输入:
acm,/bb输出:
/acm/bb

示例2

输入:
/abc,/bcd输出:
/abc/bcd

示例3

输入:
/acd,bef输出:
/acd/bef

示例4

输入:
,输出:
/

题解

字符串操作的问题,解法思路:

1、将 前缀 后多余的 / 去掉;

2、将 后缀 前多余的 / 去掉;

3、 连接输出结果。

Java

import java.util.Scanner;/*** @author code5bug*/public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String input = scanner.nextLine();String[] line = input.split(",");// 找到前缀中最后一个非 / 的位置,作为前缀的结束位置String prefix = line[0];int r = prefix.length();while (r > 0 && prefix.charAt(r - 1) == '/') {r--;}// 找到后缀中第一个非 / 的位置,作为后缀的开始位置String suffix = line[1];int l = 0;while (l < suffix.length() && suffix.charAt(l) == '/') {l++;}// 拼接输出结果System.out.println(prefix.substring(0, r) + "/" + suffix.substring(l));}
}

Python

def fun():prefix, suffix = input().split(",")# 找到前缀中最后一个非 / 的位置,作为前缀的结束位置r = len(prefix)while r > 0 and prefix[r - 1] == '/':r -= 1# 找到后缀中第一个非 / 的位置,作为后缀的开始位置l = 0while l < len(suffix) and suffix[l] == '/':l += 1# 拼接输出结果print(f'{prefix[:r]}/{suffix[l:]}')if __name__ == "__main__":fun()

C++

#include <iostream>
#include <string>using namespace std;int main() {string input;getline(cin, input);// 分割输入字符串size_t pos = input.find(",");string prefix = input.substr(0, pos);string suffix = input.substr(pos + 1);// 找到前缀中最后一个非 / 的位置,作为前缀的结束位置size_t r = prefix.length();while (r > 0 && prefix[r - 1] == '/') {r--;}// 找到后缀中第一个非 / 的位置,作为后缀的开始位置size_t l = 0;while (l < suffix.length() && suffix[l] == '/') {l++;}// 拼接输出结果cout << prefix.substr(0, r) + "/" + suffix.substr(l) << endl;return 0;
}

‍❤️‍华为OD机试面试交流群每日真题分享): 加V时备注“华为od加群”

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

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

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

相关文章

单调栈最后一天

目录 84.柱状图中最大的矩形 看到题目时的第一想法 看到代码随想录的想法 实现时出现的困难 84.柱状图中最大的矩形 力扣题目链接(opens new window) 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求 在该…

XML详细介绍

文章目录 一、XML二、XML基本语法三、XML常见问题四、XML和HTML有什么区别和优缺点五、热门文章 一、XML XML&#xff08;可扩展标记语言&#xff09;是一种标记语言&#xff0c;用于描述数据的结构和含义。它被设计用来存储和传输数据&#xff0c;并可以用于创建自定义的标记…

03 Verilog HDL 语法

Verilog HDL&#xff08;Hardware Description Language&#xff09;是在 C 语言的基础上发展起来的一种硬件描述语言&#xff08;用它可以表示逻辑电路图、逻辑表达式、数字逻辑系统所完成的逻辑功能等&#xff09;具有灵活性高、易学易用等特点。Verilog HDL 可以在较短的时间…

【DeepLearning-10】yolo.py文件关键代码parse_model(d, ch)函数

这段代码功能是根据提供的配置字典&#xff08;d&#xff09;和输入通道列表&#xff08;ch&#xff09;来解析并构建一个YOLOv5模型。函数的核心工作是遍历模型的每一层&#xff0c;并根据配置创建相应的神经网络层。 我们可以在函数中为新增模块配置构造参数设置。 函数中 f…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例5-3 getBoundingClientRect()

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>getBoundingClientRect()</title> </head> <script>function getRect(){var obj document.getElementById(example); //获取元素对象var objR…

【数据结构1-3】集合

有时候&#xff0c;我们并不关心数据之间的前后关系&#xff0c;也不关心数据的层次关系。一些确定元素只是单纯的聚集在一起&#xff0c;这样的元素聚集体被称为集合。 当希望知道某个数据是否存在一个集合中&#xff0c;或者两个元素是否在同一个集合中时&#xff0c;就需要使…

IP关联是什么?有什么后果?如何防止电商账号因IP关联被封?

在跨境电商的世界里&#xff0c;IP关联给多账号运营的商家带来了挑战。比如&#xff0c;亚马逊IP关联规则的执行对于那些经营多个店铺的卖家来说可能是一个不小的障碍。IP关联的影响不只是限于亚马逊&#xff0c;其他平台如Instagram、Facebook也有类似的机制&#xff0c;在之前…

web架构师编辑器内容-添加自动保存的功能

对于频繁改动的应用&#xff0c;自动保存的功能是一个非常有用的功能&#xff0c;可以避免用户在没有保存的情况下丢失自己保存过的数据。 对于自动保存&#xff0c;一般有两种实现&#xff0c;参考语雀和石墨&#xff1a; 语雀采用的是定时保存的方式&#xff0c;大约在3分半…

PHP语法

#本来是在学命令执行&#xff0c;所以学了学&#xff0c;后来发现&#xff0c;PHP语法和命令执行的关系好像没有那么大&#xff0c;不如直接学php的一些命令执行函数了。# #但是还是更一下&#xff0c;毕竟还是很多地方都要求掌握php作为脚本语言&#xff0c;所以就学了前面的…

HR:年底了如何分钱,比亏钱更可怕的是“亏”员工

年底了&#xff0c;很多企业家朋友在聊一个话题&#xff1a;如何分钱&#xff0c;激励员工创造更大的价值&#xff1f;分钱很重要&#xff0c;但分钱也特别难。 钱分对了&#xff0c;管理的一大半问题就解决了。钱分得不对&#xff0c;一大堆新的问题就出现了。最坏的结果&…

514.自由之路

一个字符串 ring ,表示刻在外环上的编码;给定另一个字符串 key ,表示需要拼写的关键词。您需要算出能够拼写关键词中所有字符的最少步数。 最初,ring 的第一个字符与 12:00 方向对齐。您需要顺时针或逆时针旋转 ring 以使 key 的一个字符在 12:00 方向对齐,然后按下中心按…

docker真的好难用啊,为什么说它移植性好啊?

对于首次接触 Docker 新人来说&#xff0c;Docker 确实存在一定的门槛&#xff0c;主要可能需要适应的几个点如下&#xff1a; 1、 概念理解&#xff1a; Docker 自身引入了很多新概念&#xff0c;比如镜像&#xff08;Image&#xff09;、容器&#xff08;Container&#xff…

HTML新手教程

HTML入门 教程&#xff1a;【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 一.初识HTML HyperTextMarkupLanguage&#xff08;超文本标记语言&#xff09; 超文本包括&#xff1a;文字、图片、音频、视频、动画。 HTML5的优势 世界知名浏览器厂商对HTML5的支持市场的…

无人值守变电所运维在海南市某住宅区的应用

1 前言 随着国家电网改革政策的逐步推进和落实&#xff0c;AcrelCloud-1000变电所运维云平台运用互联网和大数据技术&#xff0c;为电力运维公司提供变电所运维云平台。该平台作为连接运维单位和用电企业的纽带&#xff0c;监视用户配电系统的运行状态和电量数据&#xff0c;为…

Vue3使用setup-extend简化组件名写法

如果我们在Vue3中要使用setup的语法糖&#xff0c;就需要使用两个script标签&#xff0c;一个用于设置组件的name属性&#xff0c;一个用于编写setup中的代码。如下&#xff1a; 但是我们有觉得光是因为一个name属性就多写一个script标签有点麻烦了。 因此我们可以使用插件来进…

【Python笔记-设计模式】抽象工厂模式

一、说明 (一) 解决问题 抽象工厂是一种创建型设计模式&#xff0c;主要解决接口选择的问题。能够创建一系列相关的对象&#xff0c;而无需指定其具体类。 (二) 使用场景 系统中有多于一个的产品族&#xff0c;且这些产品族类的产品需实现同样的接口。 例如&#xff1a;有…

AI对话软件哪个好?首选这3款堪称神器的AI工具!

在过去的一年里&#xff0c;AI对话软件无疑深度嵌入到了我们工作或生活的方方面面&#xff0c;成为了我们的得力助手。它们可以帮我们解决问题&#xff0c;提供信息&#xff0c;甚至陪伴我们度过孤独的时刻。 但是&#xff0c;面对市场上数量众多的AI对话软件&#xff0c;你是…

arcgis 批量删除字段

一、打开ArcToolbox-数据管理工具-字段-删除字段。 二、在输入表中选择要删除字段的要素&#xff0c;在删除字段栏中选择要删除的字段&#xff0c;点击确认即可。

【C语言】深入理解指针(4)回调函数

目录 回调函数 回调函数的应用 i&#xff0c;简化代码逻辑 ii&#xff0c;实现上下机之间的通讯 回调函数 回调函数就是⼀个通过函数指针调用的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另⼀个函数&#xff0c;当这个指针被用来调用其所指向…

嵌入式软件工程师面试题——2025校招社招通用(C/C++)(四十五)

说明&#xff1a; 面试群&#xff0c;群号&#xff1a; 228447240面试题来源于网络书籍&#xff0c;公司题目以及博主原创或修改&#xff08;题目大部分来源于各种公司&#xff09;&#xff1b;文中很多题目&#xff0c;或许大家直接编译器写完&#xff0c;1分钟就出结果了。但…