2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++)
题目描述
给定一个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.分类讨论第一个子串或第二个子串为空的情况
考点
字符串处理
代码
c++
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <math.h>
#include <algorithm>
#include <vector>
#include <time.h>
#include <bitset>
using namespace std;
vector<string> split(string str) {
int pos=str.find(',');
vector<string> res;
res.push_back(str.substr(0,pos));
res.push_back(str.substr(pos+1));
return res;
}
int main() {
string tmp;
cin>>tmp;
vector<string> vec=split(tmp);
if(vec[0].empty()&&vec[1].empty()) {
cout<<"/"<<endl;
system("pause");
return 0;
}
if(!vec[0].empty()&&!vec[1].empty()) {
if(vec[0].at(vec[0].size()-1)=='/') {
vec[0]=vec[0].substr(0,vec