首页 > 代码库 > hdu 3125 Slash(模拟)
hdu 3125 Slash(模拟)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3125
Problem Description
The American English slash (/) is a punctuation mark. In the early modern period, in the Fraktur script, which was widespread through Europe in the Middle Ages, one slash(/) represented a comma, while two slashes (//) represented a dash.
With the wide use of computers, slash appeared far more than at any previous time in history. On Unix-like systems and in URLs, the slash is to separate directory and file components of a path:
/home/whuacm/chaeyeon/Sherlockpp.jpg
http://acm.whu.edu.cn/
But in Windows systems, it uses (\) to separate directory and file components of a path:
C:\Users\v-yungao\Music\Shake
That really confuses me. Could you help me to judge if the string I wrote is right.
Please notice that I would only make a mistake by changing (\) to (/) or (/) to (\). All the strings were constituted by a-z, A-Z, 0-9, (.) , (\) and (/), no other characters would appear in the strings.
A string of URL always begins with “[a-zA-Z]+://” (Notice (/) maybe changed to (\) ), in which “[a-zA-Z]+” represents any non-empty string of letters.
Windows path begins with “[a-zA-Z]:\” (Notice (\) maybe changed to (/)), in which “[a-zA-Z]” means an English letter. (e.g. “C:\\windows” is a URL not a Windows path)
The path of Unix-like system begins with (/) or (\).
I’ll give you some strings, can you tell me which type those strings belong to and those correct forms.
With the wide use of computers, slash appeared far more than at any previous time in history. On Unix-like systems and in URLs, the slash is to separate directory and file components of a path:
/home/whuacm/chaeyeon/Sherlockpp.jpg
http://acm.whu.edu.cn/
But in Windows systems, it uses (\) to separate directory and file components of a path:
C:\Users\v-yungao\Music\Shake
That really confuses me. Could you help me to judge if the string I wrote is right.
Please notice that I would only make a mistake by changing (\) to (/) or (/) to (\). All the strings were constituted by a-z, A-Z, 0-9, (.) , (\) and (/), no other characters would appear in the strings.
A string of URL always begins with “[a-zA-Z]+://” (Notice (/) maybe changed to (\) ), in which “[a-zA-Z]+” represents any non-empty string of letters.
Windows path begins with “[a-zA-Z]:\” (Notice (\) maybe changed to (/)), in which “[a-zA-Z]” means an English letter. (e.g. “C:\\windows” is a URL not a Windows path)
The path of Unix-like system begins with (/) or (\).
I’ll give you some strings, can you tell me which type those strings belong to and those correct forms.
Input
The first line consists of an integer T, indicating the number of strings.
The next T lines, each line consists of a single non-empty string. All of those are really data from our daily life.
The next T lines, each line consists of a single non-empty string. All of those are really data from our daily life.
Output
For each string:
If it belongs to a path in Unix-like systems, output “It’s a path in Unix-like systems!” in a new line and the correct string in the next line.
If it belongs to a path in Windows system, output “It’s a path in Windows system!” in a new line and the correct string in the next line.
If it’s a URL, output “It’s a URL!” in a new line and the correct string in the next line.
The kind of each input string can be uniquely determined.
Constrains
0 < T <= 20
The length of each string will not be longer than 50.
If it belongs to a path in Unix-like systems, output “It’s a path in Unix-like systems!” in a new line and the correct string in the next line.
If it belongs to a path in Windows system, output “It’s a path in Windows system!” in a new line and the correct string in the next line.
If it’s a URL, output “It’s a URL!” in a new line and the correct string in the next line.
The kind of each input string can be uniquely determined.
Constrains
0 < T <= 20
The length of each string will not be longer than 50.
Sample Input
4 http://acm.whu.edu.cn/felioj http:/\acm.whu.edu.cn/11111011001/ \home\whuacm\Slash\yama Z:\movie/chaeyeon
Sample Output
It‘s a URL! http://acm.whu.edu.cn/felioj It‘s a URL! http://acm.whu.edu.cn/11111011001/ It‘s a path in Unix-like systems! /home/whuacm/Slash/yama It‘s a path in Windows system! Z:\movie\chaeyeon
Source
2009 Asia Wuhan Regional Contest Online
代码如下:
//#pragma warning (disable:4786) #include <cstdio> #include <cmath> #include <cstring> #include <string> #include <cstdlib> #include <climits> #include <ctype.h> #include <queue> #include <stack> #include <vector> #include <utility> #include <deque> #include <set> #include <map> #include <iostream> #include <algorithm> using namespace std; const double eps = 1e-9; //const double pi = atan(1.0)*4; const double pi = 3.1415926535897932384626; #define INF 1e18 //typedef long long LL; //typedef __int64 LL; bool Judge(char c) { if(c == '/' || c == '\\') return true; return false; } int main() { int t; char str[57]; scanf("%d",&t); while(t--) { memset(str,'\0',sizeof(str)); scanf("%s",str); int len = strlen(str); if(Judge(str[0])) { printf("It's a path in Unix-like systems!\n"); for(int j = 0; j < len; j++) { if(str[j] == '\\') printf("/"); else printf("%c",str[j]); } printf("\n"); continue; } for(int i = 0; i < len; i++) { if(Judge(str[i]) && Judge(str[i+1])) { printf("It's a URL!\n"); for(int j = 0; j < len; j++) { if(str[j] == '\\') printf("/"); else printf("%c",str[j]); } printf("\n"); break; } else if(Judge(str[i])) { printf("It's a path in Windows system!\n"); for(int j = 0; j < len; j++) { if(str[j] == '/') printf("\\"); else printf("%c",str[j]); } printf("\n"); break; } } } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。