拼接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,一经查实,立即删除!

相关文章

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;在之前…

PHP语法

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

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;当这个指针被用来调用其所指向…

老龄化对投资意味着什么?

1月15日&#xff0c;国务院办公厅印发《关于发展银发经济增进老年人福祉的意见》从4个方面提出26项举措&#xff0c;为我国首个以“银发经济”命名的政策文件。 近期&#xff0c;国信证券分析师王开发布题为《银发经济再思考&#xff1a;老龄化对投资的影响》的报告&#xff0…

Hive(15)中使用sum() over()实现累积求和和滑动求和

目的&#xff1a; 三个常用的排序函数row_number(),rank()和dense_rank()。这三个函数需要配合开窗函数over()来实现排序功能。但over()的用法远不止于此&#xff0c;本文咱们来介绍如何实现累计求和和滑动求和。 1、数据介绍 三列数据&#xff0c;分别是员工的姓名、月份和…

源聚达科技:开一家抖音店铺怎么做最好

在数字化浪潮的推动下&#xff0c;抖音不仅是年轻人展示才华的舞台&#xff0c;也成为商家争夺流量的新阵地。开一家抖音店铺&#xff0c;看似简单&#xff0c;实则需要精心策划和周到运营。 首要任务是确立店铺定位。正如古人云“磨刀不误砍柴工”&#xff0c;明确目标受众和主…

神经网络建立(结果可变)最小神经元

目录 介绍&#xff1a; 初始化&#xff1a; 建模: 预测&#xff1a; 改变结果&#xff1a; 介绍&#xff1a; 在深度学习中&#xff0c;神经元通常指的是人工神经元&#xff08;或感知器&#xff09;&#xff0c;它是深度神经网络中的基本单元。深度学习的神经元模拟了生…

JavaWeb基础01-基本技术体系介绍和相关工具的安装

一、JavaWeb 1.概述 Web&#xff1a;全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站JavaWeb&#xff1a;是用Java技术来解决相关web互联网领域的技术栈 2.组成 &#xff08;1&#xff09;网页&#xff1a;展示数据&#xff08;前端技术&…

计算机网络·网络层

网络层 网络层提供的两种服务 争论&#xff1a; 网络层应该向运输层提供怎样的服务&#xff1f;面向连接还是无连接&#xff1f; 在计算机通信中&#xff0c;可靠交付应当由谁来负责&#xff1f;是网络还是端系统&#xff1f; 2 种观点&#xff1a; 面向连接的可靠交付。 无连…

【C\C++ 04】归并排序

归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法&#xff0c;该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用&#xff0c;也是用空间换时间思维的体现。 将已有序的子序列合并&#xff0c;得到完全有…