【2024最新华为OD-C卷试题汇总】URL拼接 (100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新华为OD-C卷的三语言AC题解

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

👏 感谢大家的订阅➕ 和 喜欢💗

文章目录

前言

🎀关于华为OD

  • ✨华为OD的概念
    华为的大部分社会招聘采用了被称为OD(Outsourcing Dispatch)模式,这是一种与德科共同进行的招聘方式。在这种模式下,被招聘的员工通常被定级在13至17级,这些员工被视为华为的储备人才。华为每年会从这些OD项目中选拔表现出色的员工,并将他们转为正式员工。
  • ⌚️华为 OD 应聘流程
    • 第一步:投递简历

      • 提供姓名、邮箱、手机号、身份证号,用于锁定,所以投递前需要考虑清楚,投到项目组之后,一般不会转给另一个项目的 HR 了,也就是被锁定。
    • 第二步:机试

      • 3 道算法题,400 分满分,一般 1 个月的准备时间,华为机试必须要 300 分以上,没有过半年之后才能参加下一次考试。
    • 第三步:技术面

      • 2 轮技术面试。
    • 第四步:HR 与主管面试

    • 第五步:录用,发 offer

🧭 机试备考指南

  • 华为OD的题库大半年跟新一次,也就是说,一旦跟新,那么本年用的题目就是从该题库种选题,大概有100~200道左右

  • 最近考试换为C/D卷,C/D卷题库是一样的,D卷为双机位监控,某些外包公司应聘的为D卷。

  • 为此清隆帮大家搜集并整理了C卷的题库,后续会由清隆的ACM银牌团队将题目整理后搬上OJ,支持在线评测

📀 URL拼接(100分)

问题描述

给定一个 u r l url url 的前缀和后缀,需要将它们拼接成一个完整的 u r l url url。拼接规则如下:

  1. 如果前缀的结尾和后缀的开头都没有 '/',需要自动在中间补上 '/' 连接符。
  2. 如果前缀的结尾和后缀的开头都为 '/',需要自动去重,即只保留一个 '/'

Tips: 不用考虑前后缀 u r l url url 不合法的情况。

输入格式

输入一行,包含两个字符串,表示 u r l url url 的前缀和后缀,两个字符串之间用英文逗号 ',' 分隔。

输出格式

输出一行,表示拼接后的完整 u r l url url。

样例输入

复制代码
acm,/bb

样例输出

复制代码
acm/bb

样例输入

复制代码
/abc,/bcd

样例输出

复制代码
/abc/bcd

样例输入

复制代码
/acd,bef

样例输出

复制代码
/acd/bef

样例输入

复制代码
,

样例输出

复制代码
/

数据范围

  • u r l url url 前缀和后缀都是长度不超过 100 100 100 的字符串。

题解

这是一道字符串拼接的题目。我们需要根据题目描述中给出的拼接规则,将 u r l url url 的前缀和后缀拼接成一个完整的 u r l url url。

具体步骤如下:

  1. 读取输入的 u r l url url 前缀和后缀。
  2. 判断前缀的结尾是否为 '/',并记录结果。
  3. 判断后缀的开头是否为 '/',并记录结果。
  4. 如果前缀的结尾不为 '/',且后缀的开头也不为 '/',则在拼接时需要在两者之间补上一个 '/'
  5. 如果前缀的结尾为 '/',且后缀的开头也为 '/',则在拼接时需要去掉一个 '/',避免重复。
  6. 将拼接后的结果输出即可。

时间复杂度 O ( n ) O(n) O(n),其中 n n n 为 u r l url url 前缀和后缀的总长度。空间复杂度 O ( n ) O(n) O(n)。

参考代码

  • Python
python 复制代码
url = input().split(',')
prefix = url[0]
suffix = url[1]

if not prefix and not suffix:
    print('/')
elif prefix.endswith('/') and suffix.startswith('/'):
    print(prefix + suffix[1:])
elif prefix.endswith('/') or suffix.startswith('/'):
    print(prefix + suffix)
else:
    print(prefix + '/' + suffix)
  • Java
java 复制代码
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] url = sc.next().split(",");
        String prefix = url[0];
        String suffix = url[1];
        
        if (prefix.isEmpty() && suffix.isEmpty()) {
            System.out.println("/");
        } else if (prefix.endsWith("/") && suffix.startsWith("/")) {
            System.out.println(prefix + suffix.substring(1));
        } else if (prefix.endsWith("/") || suffix.startsWith("/")) {
            System.out.println(prefix + suffix);
        } else {
            System.out.println(prefix + "/" + suffix);
        }
    }
}
  • Cpp
cpp 复制代码
#include <iostream>
#include <string>
using namespace std;

int main() {
    string url, prefix, suffix;
    
    getline(cin, url, ',');
    prefix = url;
    getline(cin, suffix);
    
    if (prefix.empty() && suffix.empty()) {
        cout << "/" << endl;
    } else if (prefix.back() == '/' && suffix.front() == '/') {
        cout << prefix + suffix.substr(1) << endl;
    } else if (prefix.back() == '/' || suffix.front() == '/') {
        cout << prefix + suffix << endl;
    } else {
        cout << prefix + "/" + suffix << endl;
    }
    
    return 0;
}

✅AC代码截图

  • 🍓 目前题目还在整理上传ing,需要抢先体验的联系清隆开通OJ账号,由于维护服务器需要成本💰,所以名额有限(暂不免费啦~)
  • AC代码cpp版本

  • AC代码java版本

  • AC代码python版本

相关推荐
独小乐14 小时前
019.ADC转换和子中断|千篇笔记实现嵌入式全栈/裸机篇
linux·c语言·驱动开发·笔记·嵌入式硬件·mcu·arm
weixin_5860614615 小时前
CSS Grid布局如何解决图片溢出网格单元_设置object-fit与网格尺寸.txt
jvm·数据库·python
baizhigangqw15 小时前
启发式算法WebApp实验室:从搜索策略到群体智能的能力进阶
算法·启发式算法·web app
IGAn CTOU15 小时前
王炸级更新!Spring Boot 3.4 正式发布,新特性真香!
java·spring boot·后端
计算机徐师兄15 小时前
Python基于农村和城镇人民生活数据的可视化系统(附源码,文档说明)
python·生活·农村和城镇人民生活数据·python人民生活数据·农村和城镇人民生活数据可视化·生活数据可视化系统·python生活数据的可视化
C雨后彩虹15 小时前
最多等和不相交连续子序列
java·数据结构·算法·华为·面试
Byron Loong15 小时前
【网络】Python 怎么做TCP通讯
网络·python·tcp/ip
ILYT NCTR15 小时前
爬虫学习案例3
爬虫·python·学习
Greyson115 小时前
CSS Grid布局如何解决图片溢出网格单元_设置object-fit与网格尺寸.txt
jvm·数据库·python
234710212715 小时前
4.16 学习笔记
开发语言·软件测试·python