文章

5

粉丝

65

获赞

1

访问

4.5k

头像
循环位移 题解:
P1912 厦门大学2018年机试
发布于2023年7月16日 21:53
阅读数 639

#include <bits/stdc++.h>
using namespace std;

int size = 0;

// 模拟字符串循环
void func(string &str1) {
	int len = str1.size();
	// 取字符串最后一个字符,要注意len-1,因为最后一个是'\0'
	char tmp = str1[len - 1];
	// 在字符串最前面插入最后一个字符
	str1.insert(0, 1, tmp);
	// 取字符串需要的部分,去除最后的末尾
	str1 = str1.substr(0, len);
}

int main() {
	string str1;
	string str2;
	cin >> str1 >> str2;
	// 用于控制循环次数,如果所有组合结果都无法匹配上则跳出循环
	int stop = 0;
	size = str1.size();
	while (true) {
		func(str1);
		if (str1 == str2) {
			cout << 'Y' << endl;
			break;
		}
		if (stop > size) {
			cout << 'N' << endl;
			break;
		}
		stop++;
	}

	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发