数字字符串转化为IP地址
牛客链接 <–
题目描述
现在有一个只包含数字的字符串,将该字符串转化成IP地址的形式,返回所有可能的情况。
例如:
给出的字符串为"25525511135",
返回[“255.255.11.135”, “255.255.111.35”]. (顺序没有关系)
输入:
“25525511135”
输出
[“255.255.11.135”,“255.255.111.35”]
函数接口规定:
class Solution {
public:
/**
*
* @param s string字符串
* @return string字符串vector
*/
vector<string> restoreIpAddresses(string s) {
//write your code here
}
};
这个题目之前面试的时候遇到过,还是要考虑一些情况的。首先要dfs,把字符串分隔成4部分,因为IPv4是32位的,用点分十进制分成a.b.c.d的形式,每个十进制数都要在[0,255]的范围内。所以我们dfs的时候,可以先保证每个数的位数在1到3之间。
dfs出分割后,要判断这个十进制数是否合法。如果是空串一定不行,如果有前导零也不行,大于255也不行。
class Solution {
public:
/**
*
* @param s string字符串
* @return string字符串vector
*/
string tmp;
int r[4];
int ok(string s) {
//判断十进制串是否合法
if(!s.length()