牛客真題(4)操作序列

2021-09-13 09:01:47 字數 868 閱讀 5172

牛客真題,輸入乙個長度為n的序列,對序列的每一次操作分兩步,第一步將當前位元素放入新容器的末尾,第二步對新容器的序列進行反轉,這兩步操作執行n次,求新的容器序列的輸出結果。

分析:1、可以使用容器存放序列,然後每加入一次,就進行反轉一次,知道n次,但是這樣會超時;

2、其實可以找到規律,發現每次輸出的數是大小相隔2的,那麼就可以利用這個特性直接輸出,不用反轉序列,最後的結果沒有超時。

附上c++超時**1:

#include#includeusing namespace std;

int main()

{ int n;

cin>>n;

int a[n];

for(int i=0;i>a[i];

vectort;

for(int i=0;i附上通過c++**:

#include#includeusing namespace std;

int main()

{ int n;

cin>>n;

int a[n];

for(int i=0;i>a[i];

int j=n-1;

for(;j>=0;j--,j--)

cout《附上python**:

n=int(input())

a=input().split()

t=if n%2==0:

t.extend(a[1::2][::-1])

t.extend(a[::2])

else:

t.extend(a[::2][::-1])

t.extend(a[1::2])

print(' '.join(t))

牛客真題(1)彩色的磚塊

網易一道真題,問輸入一串字元,最多只能有一對不同字母相鄰,求輸入的字串有多少種排列方式。分析 既然最多只有一對,那麼輸入的字串中只能最多有兩個不同字母。出現乙個字母的時候只有一種方式,出現兩個字母的時候有兩種方式,出現超過或等於三種的輸出為0。可以通過乙個set容器存放輸入的字母種類,然後判斷容器大...

牛客真題(13) 迴圈數比較

今天繼續刷牛客真題,比較兩個迴圈數的大小。分析 既然是兩個迴圈數,那麼肯定存在大數的情況,因此如果採用int型表示的話,那就會出現溢位的情況,因此只有用字串的形式表示。然後比較大小的時候,可以首先通過兩個迴圈數的長度進行判斷,自然迴圈數的長度大的值肯定也大,然後遇到長度相等的時候,需要比較兩個數的大...

牛客真題(27) 括號匹配深度

今天繼續刷牛客真題,括號匹配深度,求括號的深度。分析 通過遍歷整個字串,判斷是左括號就加一,右括號就減一,同時設定乙個最大深度的變數計算最大深度。問題 1 變數名設定 附上c include includeusing namespace std int main string s getline c...