때로는 IPv4 주소를 입력 할 때 모든 숫자가 올바르게 표시되지만 하나 이상의 마침표를 입력하는 것을 잊어 버립니다. 깨진 IPv4 주소를 사용하여 누락 된 기간의 모든 유효한 배치를 출력하는 프로그램 (또는 기능)을 갖고 싶습니다.
입력
입력은 항상 유효한 IPv4 주소의 변환 인 문자열입니다 (아래 세부 사항 참조). 하나 이상의 마침표 문자를 제거하여 항상 변형되었을 것입니다.
제출은이 형식 이외의 입력을 처리 할 필요가 없습니다.
산출
마침표 문자를 입력에 삽입하여 입력에서 만들 수있는 모든 유효한 IPv4 주소를 나타내는 문자열의 특정 순서 나 형식이없는 문자열 모음 또는 목록입니다.
- 출력은 언어 고유 목록 또는 다른 순서가 있거나 비 정렬 된 콜렉션 유형일 수 있습니다.
- 또는 명확한 방식으로 구분 된 IPv4 주소의 문자열 시퀀스 일 수 있습니다.
- 단일 문자 구분 기호를 사용하여 문자열을 구분하는 경우 마침표와 숫자는 해당 단일 문자 구분 기호로 사용할 수 없습니다. 나는 숫자와 달리 구분 기호로서의 기간이 모호 하지는 않지만 (매 4 번째 기간은 반드시 구분 문자이므로) 가독성을 위해 허용하지 않는다는 것을 알고 있습니다.
IPv4 주소 형식
IPv4 주소는 실제로 4 개의 2 진수 8 진수 시퀀스 일 뿐이지 만이 문제는 제한된 점으로 구분 된 10 진수 형식을 사용합니다.
- IPv4 주소는 3 개의 마침표로 구분 된 4 개의 10 진수 값입니다.
- 네 가지 값 각각의 범위는
0
~255
을 포함합니다. - 숫자 값 에는 선행 0이 허용되지 않습니다 . (독립 한 문자가
0
허용되는 임의의 다른 개수가 0으로 시작되는 것은 아니다 :052
,00
등)
테스트 사례
입력은 첫 번째 행에, 두 번째 행에 출력됩니다 (여기서는 쉼표로 구분되고 쉼표로 구분되고 쉼표로 구분 [
]
되지만 위에 지정된대로 적절한 형식 또는 구조를 사용할 수 있음). 일부 예에는 특정 규칙의 적용을 강조하기 위해 세 번째 줄에 메모가 있습니다.
192.168.1234
["192.168.1.234", "192.168.12.34", "192.168.123.4"]
192.1681234
["192.16.81.234", "192.168.1.234", "192.168.12.34", "192.168.123.4"]
(Note: 192.1681.2.34 (etc.) is illegal because 1681 is greater than 255)
1921681.234
["19.216.81.234", "192.16.81.234", "192.168.1.234"]
1921681234
["19.216.81.234", "192.16.81.234", "192.168.1.234", "192.168.12.34", "192.168.123.4"]
192.168.1204
["192.168.1.204", "192.168.120.4"]
(Note: 192.168.12.04 is illegal because of leading zero)
192.168.123
["1.92.168.123", "19.2.168.123", "192.1.68.123", "192.16.8.123", "192.168.1.23", "192.168.12.3"]
192.168.256
["192.168.2.56", "192.168.25.6"]
(Note: Any combination that would leave 256 intact is illegal)
120345
["1.20.3.45", "1.20.34.5", "1.203.4.5", "12.0.3.45", "12.0.34.5", "120.3.4.5"]
(Note: 12.03.4.5 (etc.) is illegal due to leading zero.)
012345
["0.1.23.45", "0.1.234.5", "0.12.3.45", "0.12.34.5", "0.123.4.5"]
(Note: the first segment must be 0, because `01` or `012` would be illegal.)
000123
["0.0.0.123"]
(이 예제를 직접 작성 했으므로 찾을 수있는 실수를 알려주십시오.)