九度-题目1203:IP地址
http://ac.jobdu.com/problem.php?pid=1203
- 题目描述:
-
输入一个ip地址串,判断是否合法。
- 输入:
-
输入的第一行包括一个整数n(1<=n<=500),代表下面会出现的IP地址的个数。
接下来的n行每行有一个IP地址,IP地址的形式为a.b.c.d,其中a、b、c、d都是整数。
- 输出:
-
可能有多组测试数据,对于每组数据,如果IP地址合法则输出"Yes!”,否则输出"No!”。
- 样例输入:
-
2
255.255.255.255
512.12.2.3
- 样例输出:
-
Yes!
No!
- 提示:
-
合法的IP地址为:
a、b、c、d都是0-255的整数。
- 来源:
- 2006年华中科技大学计算机保研机试真题
- 解1:
- 根据.的位置直接判断,输入的格式是确定的。只要判断四个数字的正确性。
-
#include<stdio.h>
#include<string.h> int main() {
int n;
while (scanf("%d", &n) != EOF) {
while (n--) {
char ip[];
scanf("%s", ip);
int len = strlen(ip);
int count = ;
int num = ;
for (int i = ; i < len; i++) {
if (ip[i] == '.') {
if (num >= && num <= ) {
count++;
}
num = ;
} else {
num = num * + ip[i] - '';
}
}
if (num >= && num <= ) {
count++;
}
if (count == ) {
printf("Yes!\n");
} else {
printf("No!\n");
}
}
}
return ;
}解2:
C++中没有split(分割字符串)函数。因此可以构造一个。使用起来就比较方便。不过对于该题而言,这样略显复杂。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <vector> using namespace std; char ip[]; void split(const string& s, const string& c, vector<string>& v)
{
string::size_type last, index;
index = s.find(c);
last = ;
while(string::npos != index)
{
v.push_back(s.substr(last, index-last)); last = index + c.size();
index = s.find(c, last);
}
if(last != s.length())
v.push_back(s.substr(last));
} bool isValid(char str[], vector<string> &ret)
{
int len=strlen(str);
if(len>) return false; string s=str;
string delim="."; split(s, delim, ret); int size=ret.size();
for(int i=; i<size; i++)
{
int num=atoi(ret[i].c_str());
if(num< || num>)
return false;
} return true;
} int main()
{
vector<string> ret;
int n;
while(scanf("%d", &n)!=EOF)
{
while(n--)
{
if(ret.empty()!=true)
ret.clear();
scanf("%s", ip);
bool isip=isValid(ip, ret);
if(isip)
printf("Yes!\n");
else
printf("No!\n");
}
} return ;
}
九度-题目1203:IP地址的更多相关文章
- 九度OJ 1203:IP地址 (字符串处理)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3038 解决:1496 题目描述: 输入一个ip地址串,判断是否合法. 输入: 输入的第一行包括一个整数n(1<=n<=500) ...
- 九度 题目1421:Abor
转载声明本文地址 http://blog.csdn.net/yangnanhai93/article/details/40563285 题目链接:http://ac.jobdu.com/problem ...
- 九度 题目1437:To Fill or Not to Fill
题目描述: With highways available, driving a car from Hangzhou to any other city is easy. But since the ...
- 九度 题目1044:Pre-Post
转载请注明本文链接http://blog.csdn.net/yangnanhai93/article/details/40658571 题目链接:pid=1044">http://ac ...
- 九度-题目1026:又一版 A+B
http://ac.jobdu.com/problem.php?pid=1026 题目描述: 输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m ...
- 九度-题目1195:最长&最短文本
http://ac.jobdu.com/problem.php?pid=1195 题目描述: 输入多行字符串,请按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出 ...
- 九度 题目1154:Jungle Roads
题目描写叙述: The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid mon ...
- 九度 题目1454:Piggy-Bank 完全背包
题目1454:Piggy-Bank 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1584 解决:742 题目描述: Before ACM can do anything, a budg ...
- 【九度OJ】题目1026:又一版 A+B 解题报告
[九度OJ]题目1026:又一版 A+B 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1026 题目描述: 输入两个不超过 ...
随机推荐
- Git 命令及使用经验
手册中的基本命令: CONFIGURE TOOLING Configure user information for all local repositories $ git config --glo ...
- 在Linux中安装JDK和IDEA
前言 寒假安装虚拟机的时候我就没有安装好,到学校之后,因为时间紧加上更习惯Windows的操作习惯,我只在Windows上安装了JDK和IDEA,但是随着学习的深入,我发现用虚拟机写命令行.新建jav ...
- 20155319 2016-2017-2 《Java程序设计》第一周学习总结
20155319 2016-2007-2 <Java程序设计>第一周学习总结 考核方式 翻转课堂考核12次(5*12=60):每次考试20-30道题目,考试成绩规格化成5分(如总分20分就 ...
- python 发红包的小程序
红包1 import random def redpacket(cash,person): lst=[] sum1=0 cash = cash * 100 while cash>0 and pe ...
- BZOJ054_移动玩具_KEY
题目传送门 这道题我写IDA*写挂了,TLE+WA,只AC了两个点. 这道题标算BFS+状态压缩. code: /******************************************* ...
- 北京Uber优步司机奖励政策(4月13日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- WebAPI学习笔记
WebAPI WebApi是添加到Asp.Net平台的一个新特性,可以快速的创建Web服务,并对客户端提供HTTP的API调用接口 WebApi是建立在MVC框架基础之上,但不属于MVC的一部分. 序 ...
- Redis的事物
Redis的事物 Redis 事物常用命令 multi标记一个事物块的开始 exec:执行所有事物块内的命令 discard: 取消事物,放弃执行事物块的所有命令 watch key [k ...
- shell基础 -- grep、sed、awk命令简介
在 shell 编程中,常需要处理文本,这里介绍几个文本处理命令. 一.grep 命令 grep 命令由来已久,用 grep 命令来查找 文本十分方便.在 POSIX 系统上,grep 可以在两种正则 ...
- 微软职位内部推荐-Principal Development Lead - SharePoint
微软近期Open的职位: SharePoint is a multi-billion dollar enterprise business that has grown from an on-prem ...