UCF Local Programming Contest 2017 B. Simplified Keyboard

在这里插入图片描述
在这里插入图片描述

题意:

给出一个字母分布图,如果两个字符串对应位置的字母全都相等,字符串属性为 1 1 ,否则若两个字符串对应位置字母均相邻或相等,字符串属性为 2 2 ,否则字符串属性为 3 3 . 现给出两个字符串,问这两个字符串的属性。

对于情况 2 2 ,就是相差 1 , 8 , 9 , 10 1,8,9,10 这些位置的可以其他的不行,看看表就知道了。

AC代码:

const int N = 1e5 + 10;
int n, m, d;
int main()
{
	int t;
	sd(t);
	while (t--)
	{
		string s1, s2;
		cin >> s1;
		cin >> s2;
		int len1 = s1.size();
		int len2 = s2.size();
		if (s1 == s2)
		{
			puts("1");
			continue;
		}
		if (len1 != len2)
		{
			puts("3");
			continue;
		}
		bool flag = 1;
		rep(i, 0, len1 - 1)
		{
			if (s1[i] == s2[i])
				continue;
			if (s1[i] == s2[i] - 1 || s1[i] == s2[i] + 1 || s1[i] == s2[i] + 9 || s1[i] == s2[i] - 9 || s1[i] == s2[i] + 8 || s1[i] == s2[i] - 8 || s1[i] == s2[i] + 10 || s1[i] == s2[i] - 10)
				continue;
			else
			{
				flag = 0;
				break;
			}
		}
		if (flag)
			puts("2");
		else
			puts("3");
	}
	return 0;
}
发布了786 篇原创文章 · 获赞 460 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/qq_43627087/article/details/105349405