早教吧作业答案频道 -->数学-->
这道算法题的公式是什么?把由n个连续的A和n个连续的B(200≥n≥4)组成的字符串通过字符移动操作变成AB相间的字符串.移动规则为:每次移动以两个相邻字符为单位,这两个相邻字符之间的顺序
题目详情
这道算法题的公式是什么?
把由n个连续的A和n个连续的B(200≥n≥4)组成的字符串通过字符移动操作变成AB相间的字符串.移动规则为:每次移动以两个相邻字符为单位,这两个相邻字符之间的顺序以及其它字符之间的顺序不得改变.举例如下:
AAAABBBB →AAA##BBBAB→AAABB##BAB→A##BBAABAB→ABAB##ABAB→ABABABAB
其中,“#”代表空出的位置.
求最少的移动步数.
把由n个连续的A和n个连续的B(200≥n≥4)组成的字符串通过字符移动操作变成AB相间的字符串.移动规则为:每次移动以两个相邻字符为单位,这两个相邻字符之间的顺序以及其它字符之间的顺序不得改变.举例如下:
AAAABBBB →AAA##BBBAB→AAABB##BAB→A##BBAABAB→ABAB##ABAB→ABABABAB
其中,“#”代表空出的位置.
求最少的移动步数.
▼优质解答
答案和解析
最少的移动步骤不清楚,但以下方法可以达到目的——
反过来思考,将AB相间的字符串,每次移动2个相邻字符,最后弄成n个连续的A和n个连续的B的字符串,那就很容易了.例如ABABABAB,只要每次将最后的“AB”,插入第二个“B”的前面就行:
ABABABAB→AABBABAB→AAABBBAB→AAAABBBB
总共要移动n-1对AB,所以可以n-1步达到目的
反过来思考,将AB相间的字符串,每次移动2个相邻字符,最后弄成n个连续的A和n个连续的B的字符串,那就很容易了.例如ABABABAB,只要每次将最后的“AB”,插入第二个“B”的前面就行:
ABABABAB→AABBABAB→AAABBBAB→AAAABBBB
总共要移动n-1对AB,所以可以n-1步达到目的
看了这道算法题的公式是什么?把由n...的网友还看了以下:
有一串数19962808864…,这串数的排列规律是:从第7个数起,每个数都是它前面两个数之和的个 2020-05-12 …
有一串数19962808864…,这串数的排列规律是:从第7个数起,每个数都是它前面两个数之和的个 2020-05-14 …
已知一个数字串由1,22,333,4,55,3,6七个部分组成且满足下列条件:数字串的开头一定是1 2020-05-14 …
紧接着1989后面一串数字,写下的每个数字都是它前面两个数字的乘积的个位数.例如8×9=72,在9 2020-07-04 …
有一串数19962808864…,这串数的排列规律是:从第7个数起,每个数都是它前面两个数之和的个 2020-07-17 …
在下面一串数中,从第五数起,每个数都是它前面四个数之和的个位数字.那么这串数字会不会出现2002? 2020-07-19 …
c语言编程问题,请高手解答!!问题是这样的——给出一个字符串和多行文字,在这些文字中找到字符串出现 2020-07-23 …
有一个由数字1,2..,9组成的数字串(长度不超过200)问如何将M个加号插入这个数字串中,使得所形 2020-11-07 …
紧接着4444后面写一串数字,写下的每个数字都是它前面两个数字乘积的个位数.例如:4×4=16,在4 2020-11-11 …
结果总是9的数学问题原因?随意写一串数字例如1098547566然后把这串数字倒一下变成665745 2020-12-06 …