首页 > 其他分享 >每日打卡,在比较字符的时候没必要非化成ascii值,直接比字符就行

每日打卡,在比较字符的时候没必要非化成ascii值,直接比字符就行

时间:2023-05-17 20:01:30浏览次数:37  
标签:case 字符 int break ++ && 打卡 ascii size

大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的字符是 E ,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 23 点由数字 0 到 9、以及大写字母 A 到 N 表示);后面两字符串第 1 对相同的英文字母 s 出现在第 4 个位置(从 0 开始计数)上,代表第 4 分钟。现给定两对字符串,请帮助福尔摩斯解码得到约会的时间。

输入格式:

输入在 4 行中分别给出 4 个非空、不包含空格、且长度不超过 60 的字符串。

输出格式:

在一行中输出约会的时间,格式为 DAY HH:MM,其中 DAY 是某星期的 3 字符缩写,即 MON 表示星期一,TUE 表示星期二,WED 表示星期三,THU 表示星期四,FRI 表示星期五,SAT 表示星期六,SUN 表示星期日。题目输入保证每个测试存在唯一解。

输入样例:

3485djDkxh4hhGE 
2984akDfkkkkggEdsb 
s&hgsfdk 
d&Hyscvnm
 

输出样例:

THU 14:04

#include<iostream>
#include<string>
using namespace std;
int main()
{
string a, b, c, d;
cin >> a >> b >> c >> d;
int n = a.size() < b.size() ? a.size() : b.size();
int t = c.size() < d.size() ? c.size() : d.size();
int count = 0, count2 = 0,count3=0,count4=-1;
string x, y;
for (int i = 0; i < n; i++)
{
count3++;
if (a[i] == b[i] && (a[i] >= 'A' && a[i] <= 'G'))
{
count++;
switch (a[i])
{
case 'A':x = "MON"; break;
case 'B':x = "TUE"; break;
case 'C':x = "WED"; break;
case 'D':x = "THU"; break;
case 'E':x = "FRI"; break;
case 'F':x = "SAT"; break;
case 'G':x = "SUN"; break;
}
}
if (count == 1)
{
break;
}
}

for(int i=count3;i<n;i++)
{
if (a[i]==b[i]&&((a[i]>='0'&&a[i]<='9')||(a[i]>='A'&&a[i]<='N')))
{
count2++;
switch (a[i])
{
case '0':y = "00"; break;
case '1':y = "01"; break;
case '2':y = "02"; break;
case '3':y = "03"; break;
case '4':y = "04"; break;
case '5':y = "05"; break;
case '6':y = "06"; break;
case '7':y = "07"; break;
case '8':y = "08"; break;
case '9':y = "09"; break;
case 'A':y = "10"; break;
case 'B':y = "11"; break;
case 'C':y = "12"; break;
case 'D':y = "13"; break;
case 'E':y = "14"; break;
case 'F':y = "15"; break;
case 'G':y = "16"; break;
case 'H':y = "17"; break;
case 'I':y = "18"; break;
case 'J':y = "19"; break;
case 'K':y = "20"; break;
case 'L':y = "21"; break;
case 'M':y = "22"; break;
case 'N':y = "23"; break;
}
if (count2 == 1)
{
break;
}
}
}
for (int i = 0; i <t; i++)
{
count4++;
if (c[i] == d[i] && ((c[i] >= 'A' && c[i] <= 'Z') || (c[i] >= 'a' && c[i] <= 'z')))
{
break;
}
}
cout << x << " " << y << ":";
printf("%02d", count4);
return 0;
}

标签:case,字符,int,break,++,&&,打卡,ascii,size
From: https://www.cnblogs.com/zhaoqianwan/p/17409961.html

相关文章

  • c++打卡练习(33)
    歌星大赛,十个评委打分,去掉一个最高分,去掉一个最低分,求剩下的八个评分的平均分,作为选手的最终分数流程图:伪代码:源代码:#include<iostream>usingnamespacestd;intmain(){ inta[10],b[8]; inti,j,k,t,sum=0,Ave,max,min; cout<<"输入十个正整数"<<endl; for(i=0;i<10;i++){ ......
  • 第二十二天打卡
    一、问题描述求某一范围内完整的个数。如果一个数等于它的因子之和,则称该数为”完数“。例如,如6的因子为1,2,3,而6=1+2+3,因此6是“完数”。二、设计思路先设计一个数用来记录从0到指定目标的数,然后设s=0;利用循环将之除,从零开始到这个数之间的所有数,得出因子让s累加;最后比较s......
  • 打卡
    1.问题:打印所有不超过n(取n<256)的其平方具有对称性质的数(也称回文数)。2.思路:用变量i从1到256遍历,将其平方转化为一个字符串,利用函数通过双指针判断该字符串是否有对称性从而判断i是否回文数。3.程序流程图: 4.代码实现:#include<iostream>usingnamespacestd;intfact(......
  • 正确使用PHP开发系列:数组转字符串后,给每一项加上单引号
     $arr=array('a','b','c');echo"'".implode("','",$arr)."'";//outputs'a','b','c' 需要注意的是,implode的第一个参数,加上的双引号,如果是用在sql查询里,会自动加上转义符,即:......
  • 打卡 c语言趣味编程 爱因斯坦的数学问题
    问题描述:爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问在1~N内,有多少个数能满足?思路:使用一个for循环来遍历从1到N的所有数,对于每......
  • C# 字符与字符串的增删改查
    4.1 字符类Char的使用1. Char类概述C#中的char数据类型:代表单个字符• char类型,BLC名称System.Char。• 取值范围对应Unicode字符集• 占两个字节2. Char类的使用tostring将此实例的值转换为其等效的字符串表示char类型可以隐式的转换到可以容纳无符号short类型的数值类型对于......
  • js字符串转数值
    1.转换函数:js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(NotaNumber)。一些示例如下:parseInt("1234blue");//returns1234parseInt("0xA");//ret......
  • linux 替换^M字符的方法
    linux替换^M字符方法在Linux下使用vi来查看一些在Windows下创建的文本文件,有时会发现在行尾有一些“^M”。有几种方法可以处理。1.使用dos2unix命令去掉行尾的^Mdos2unixmyfile.txt2.使用vi的替换功能:%s/^M$//g#去掉行尾的^M。:%s/^M//g#去掉所有的^M。:%s/^M/[ct......
  • 查找文本字符串,并返回所在行数据
    #include<iostream>#include<string>#include<Windows.h>#include<fstream>#include<sstream>#include<signal.h>#include<io.h>#include<vector>#include<process.h>#include<cstdio>#include<as......
  • shell 中怎样去除数据中^M 字符
    这个符号^M在Linux文本文件中能看出来,在Windows系统下看不出来,因为这是windows系统下的回车换行符号。有2中方法可以去掉这个回车换行符号。第一种是全文替换,第二中是先搜索字符串,然后用sed命令替换。方法一:用vim打开文件,输入以下命令vimfilename然后在vi命令模式下输入以......