题目字数少,就会给你正许多的陷阱,晕~~
题目本身比较简单,就不分析思路了,说说它的易错点
- 输入的url地址需要检测合法性
- 数字比较看作字符串进行比较,转换为数字进行比较会超出范围
- 结尾的‘/’需要算作匹配的一部分,如: abc/< int> 和 abc/11/不匹配 因为地址最后多了‘/'这个最坑
- 必须完全匹配,如:/< int>/< int>/ 和/12/不是匹配的,因为地址差了一个数字
AC代码
#include <iostream>
using namespace std;
#include <string>
#include <vector>
typedef struct {
string url;
string name;
}URLGUNZE;
typedef struct {
int pos;
string canShu;
}RES;
bool isStr(string &s) {
if (s.find('/') == s.npos) {
//没有 '/'
return true;
} else {
return false;
}
}
bool isInt(string &s) {
for (int i=0; i<s.size(); ++i) {
if (s[i] < '0' || s[i] > '9') {
return false;
}
}
return true;
}
string stollMy(string s) {
while(s[0] == '0') {
s.erase(0, 1);
}
if (s == "") {
s = "0";
}
return s;
}
string isPiPei(string url, string s) {
int posU=0, posS=0; //记录字符串查询的起点
int pu, ps;
string su, ss, sRes="!"