using System;
using System.Collections.Generic;


class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @return string字符串一维数组
     */
    public List<string> restoreIpAddresses(string s) {
        // write code here
        if (string.IsNullOrWhiteSpace(s))
            return new List<string>();
        List<string> lsStr = new List<string>();
        HS(0, s, lsStr, "", 0);
        return lsStr;
    }

    public void HS(int nCurIndex, string s, List<string> lsStr, string strR,
                   int nT) {
        // write code here
        if (nCurIndex == s.Length && nT == 4) {
            lsStr.Add(strR.Substring(1));
            return;
        }
        //n表示字符个数
        for (int n = 1; n <= 3; n++) {
            if (nCurIndex + n > s.Length)
                return;
            string strPart = s.Substring(nCurIndex, n);
            if (strPart.StartsWith("0") && strPart.Length > 1)
                return;
            int nPart = int.Parse(strPart);
            if (nPart > 255 || nPart < 0)
                return;
            HS(nCurIndex + n, s, lsStr, strR + '.' + s.Substring(nCurIndex, n), nT + 1);
        }
    }
}