前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OJ刷题记录:FJ的字符串

OJ刷题记录:FJ的字符串

作者头像
英雄爱吃土豆片
发布2020-11-12 10:37:59
1K0
发布2020-11-12 10:37:59
举报
文章被收录于专栏:英雄爱吃土豆片

FJ的字符串

题目描述: FJ在沙盘上写了这样一些字符串:

A1 = “A”

A2 = “ABA”

A3 = “ABACABA”

A4 = “ABACABADABACABA”

… …

你能找出其中的规律并写所有的数列AN吗?

输入 输入描述:

仅有一个数:N ≤ 26。

输出 输出描述:

请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。

输入样例 1

3 输出样例 1

ABACABA

解题思路: 根据给出的字符串,可以得出规律: 1)字符串 AN 的长度为 (2^N) - 1 个。(使用一个字符数组储存)。 2)字符的排列顺序为:按照字母表顺序,从字符 ‘A’ 开始拿出 N 个字符,依次将字符放入字符数组中间隔的空位中(字符数组中的所有元素初始为空)。

通关代码:

代码语言:javascript
复制
#include <bits/stdc++.h>

using namespace std;

int main() {
	int n;

	cin >> n;

	int LEN = pow(2, n) - 1;

	char arr[LEN];

	for (int i = 0; i < LEN; i++) {
		arr[i] = '0';
	}

	for (int i = 0; i < n; i++) {
		int count = -1;
		for (int j = 0; j < LEN; j++) {
			if (arr[j] != '0') continue;

			count++;

			if (count == 0 || count % 2 == 0) {
				arr[j] = ('A' + i);
			}
		}
	}

	for (int i = 0; i < LEN; i++) {
		cout << arr[i];
	}

	return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FJ的字符串
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档