这是一个来自谷歌的面试问题。我自己解决不了。有人能透露点消息吗?
编写一个程序来打印按键的顺序,以便生成最大数量的字符“ A”。您只允许使用4个键: A,Ctrl + A,Ctrl + C和 Ctrl + V。只允许 N 次击键。所有 Ctrl + 字符都被认为是一次击键,所以 Ctrl + A是一次击键。
例如,序列 A,Ctrl + A,Ctrl + C,Ctrl + V在4次击键中产生两个 A。
我算了一下。对于任意 N,使用 x 个 A,1个 Ctrl + A,1个 Ctrl + C和 y 个 Ctrl + V,我们可以产生最大((N-1)/2)个 A 的 A2个。对于某些 N > M,最好使用 Ctrl + A、 Ctrl + C和 Ctrl + V序列,因为它使 A 的数目加倍。
序列 Ctrl + A,Ctrl + V,Ctrl + C不会覆盖现有的选择。它会将复制的选择附加到选择的选择。