1061. Dating (20)

1. 原题: https://www.patest.cn/contests/pat-a-practise/1061

2. 思路:

题意:
乙级福尔摩斯约会的英文版。查找相应字符转换成时间。
思路:
直接循环查找。注意日期的字符是在A~G,
小时的是0~9或者A~N;分钟的是A~Z或a~z的位置。

3. 源码(已AC):

#include<iostream>
#include<string>
using namespace std;

int main(void)
{
	//freopen("in.txt", "r", stdin);
	char day[7][4] = { "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN" };
	string s1, s2, s3, s4;
	cin >> s1 >> s2 >> s3 >> s4;

	int d, h, m;
	int flag = 0;
	for (int i = 0; i < s1.size(); i++)
	{
		if (s1[i] >= 'A' && s1[i] <= 'G' && s1[i] == s2[i] && flag == 0)
		{
			d = s1[i] - 'A';//日期
			flag = 1;
			continue;
		}

		if (flag == 1 && s1[i] == s2[i])
		{
			if (s1[i] >= 'A' && s1[i] <= 'N')//小时
			{
				h = s1[i] - 'A' + 10;
				break;
			}
			else if (s1[i] >= '0' && s1[i] <= '9')
			{
				h = s1[i] - '0';
				break;
			}
		}
	}

	for (int i = 0; i < s3.size(); i++)//分钟
	{
		if (s3[i] == s4[i])
		{
			if ((s3[i] >= 'A' && s3[i] <= 'Z') || (s3[i] >= 'a' && s3[i] <= 'z'))
			{
				m = i;
				break;
			}
		}
	}

	printf("%s %02d:%02d\n", day[d], h, m);
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值