牛客真題,輸入乙個長度為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...