(C卷,100分)- 拼接URL(Java & JS & Python)

题目描述

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

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

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

输入描述

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

输出描述

拼接后的url

用例

输入 /acm,/bb
输出 /acm/bb
说明
输入 /abc/,/bcd
输出 /abc/bcd
说明
输入 /acd,bef
输出 /acd/bef
说明
输入 ,
输出 /
说明

题目解析

逻辑题,可以直接看代码实现了解逻辑。


20230813 本题Java解法中split函数比较难搞,对于下面情况按照","分割出来的字符串数组分别是:

  • ","     =>   []
  • "1,"   =>   ["1"]
  • ",1"   =>   ["", "1"]

我们需要注意处理下。

JS和Python的split函数就要规矩的多,上面三种输入情况,都会返回一个长度为2的字符串数组。


更新解法使用了正则表达式,其中

prefix前缀,需要将其结尾的多个/去除,使用正则 /+$ 来匹配结尾的多个/

suffix后缀,需要将其开头的多个/去除,使用正则 ^/+ 来匹配开头的多个/

最后拼接 prefix + "/" + suffix 即可

对于python而言,有更简单的lstrip和rstrip方法,实现同样效果。

Java算法源码

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    String s = sc.nextLine();

    String[] arr = s.split(",");

    String prefix = arr.length > 0 && arr[0].length() > 0 ? arr[0] : "/";
    String suffix = arr.length > 1 && arr[1].length() > 0 ? arr[1] : "/";

    System.out.println(getResult(prefix, suffix));
  }

  public static String getResult(String prefix, String suffix) {
    prefix = prefix.replaceAll("/+$", "");
    suffix = suffix.replaceAll("^/+", "");
    return prefix + "/" + suffix;
  }
}

JS算法源码

/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

rl.on("line", (line) => {
  let [prefix, suffix] = line.split(",");

  prefix = prefix.replace(//+$/, "");
  suffix = suffix.replace(/^/+/, "");

  console.log(prefix + "/" + suffix);
});

Python算法源码

# 输入获取
prefix, suffix = input().split(",")

prefix = prefix.rstrip("/")
suffix = suffix.lstrip("/")

print(prefix + "/" + suffix)

免责声明:

1、IT资源小站为非营利性网站,全站所有资料仅供网友个人学习使用,禁止商用
2、本站所有文档、视频、书籍等资料均由网友分享,本站只负责收集不承担任何技术及版权问题
3、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除下载链接并致以最深的歉意
4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
5、一经注册为本站会员,一律视为同意网站规定,本站管理员及版主有权禁止违规用户
6、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和IT资源小站的同意
7、IT资源小站管理员和版主有权不事先通知发贴者而删除本文

0

评论0

站点公告

没有账号?注册  忘记密码?