首页 > 试题广场 >

Zero-complexity Transposition

[编程题]Zero-complexity Transposition
  • 热度指数:12805 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
You are given a sequence of integer numbers. Zero-complexity transposition of the sequence is the reverse of this sequence. Your task is to write a program that prints zero-complexity transposition of the given sequence.

输入描述:
For each case, the first line of the input file contains one integer n-length of the sequence (0 < n ≤ 10 000). The second line contains n integers numbers-a1, a2, …, an (-1 000 000 000 000 000 ≤ ai ≤ 1 000 000 000 000 000).


输出描述:
For each case, on the first line of the output file print the sequence in the reverse order.
示例1

输入

5
-3 4 6 -8 9

输出

9 -8 6 4 -3
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char const *argv[]) {
  string a[10000];
  stack <string> ss;
  int n,i;
  while (cin>>n) {
    /* code */
    for ( i = 0; i < n; i++) {
      /* code */
      cin>>a[i];
      ss.push(a[i]);
    }
    for ( i = 0; i < n; i++) {
      /* code */
      cout<<ss.top();
      if(i!=n-1) cout<<' '; 
      ss.pop();
    }
  }
  return 0;
}
发表于 2018-07-03 10:54:30 回复(1)

python solution:

while True:
    try:
        a,b=input(),input().split()
        print(" ".join(b[::-1]))
    except:
        break
发表于 2017-10-16 18:00:53 回复(0)
#include <iostream>
using namespace std;
int main()
{
    const int N = 10000;
    long long lib[N];
    int n;
    while(cin>>n){
        for(int i=1;i<=n;i++){
                cin>>lib[i];
        }
        for(int i=n;i>=1;i--){
                cout<<lib[i]<<" ";
        }
    }
    return 0;
}


发表于 2019-06-16 01:58:15 回复(0)

#include<iostream>
#include<cstdio> 
#include<stack>
using namespace std;
stack<long long> xulie;

int main(){
	    int n;
		while(scanf("%d",&n)!=EOF){
			while(n--){
				long long b;
				scanf("%lld",&b);
				xulie.push(b);
			}
			while(!xulie.empty()){
				printf("%lld ",xulie.top());
				xulie.pop();
			}
		printf("\n")	;
		}
return 0;
}

发表于 2021-03-11 20:00:13 回复(0)
#include<iostream>
using namespace std;
int main(){
    int n;
    while(cin>>n){
        int* a=new int[n];
        for(int i=0;i<n;i++)
            cin>>a[i];
        for(int i=0;i<n/2;i++){
            int temp=a[i];
            a[i]=a[n-1-i];
            a[n-1-i]=temp;
        }
        for(int i=0;i<n;i++){
            if(i<n-1)cout<<a[i]<<" ";
            else cout<<a[i];
        }
        cout<<endl;
    }
}

不是很懂直接反序输出是什么骚气的操作hhh
#include<iostream>
using namespace std;
int main(){
    int n;
    while(cin>>n){
        int* a=new int[n];
        for(int i=0;i<n;i++)
            cin>>a[i];
        for(int i=n-1;i>=0;i--){
            if(i>0)cout<<a[i]<<" ";
            else cout<<a[i];
        }
        cout<<endl;
    }
}

发表于 2019-02-10 21:57:56 回复(0)
while True:
    try:
        num = int(input())
        print(' '.join(input().split()[::-1]))
    except Exception:
        break
编辑于 2018-10-13 14:44:56 回复(0)
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<map>
#include<hash_map>
#include<string>
#include<vector>
#include<math.h>
using namespace std;
int main()
{
    int n,a[20000];
    cin>>n;
    for(int i=0;i<n;i++)
    cin>>a[i];
    for(int i=n-1;i>=0;i--)
    {
        if(i>=1)
        cout<<a[i]<<" ";
        else
        cout<<a[i]<<endl;
    }
    return 0;
}
 
发表于 2018-04-30 19:35:52 回复(0)
借用栈的思想呀
#include <iostream>
#include <cstdio>
#include <stack>

using namespace std;

stack<int> myStack;    //定义一个栈

int main(){
    int n;
    while (scanf("%d", &n) != EOF) {
        for (int i = 0; i < n; ++i) {
            int k;
            scanf("%d", &k);
            myStack.push(k);    //    入栈
        }
        while (!myStack.empty()) {
            printf("%d ", myStack.top());    //按顺序输出栈就行了
            myStack.pop();
        }
        printf("\n");
    }
    return 0;
}


发表于 2020-02-05 10:36:11 回复(0)
虽然非常简单,难得靠自己完成了
#include <iostream>
#include<stack>
using namespace std;

int main() {
//这里使用栈的结构来完成数组的逆向打印
    int n;
    cin >> n;
    stack<int>stk;
    for (int i = 0; i < n; i++) {
        int x;
        cin >> x;
        stk.push(x);
    }
    for (int i = 0; i < n; i++) {
        int y;
        y = stk.top();
        cout << y;
        cout << " ";
        stk.pop();
    }
    cout << endl;
}



发表于 2024-01-17 12:55:13 回复(0)
#include <iostream>
#include <stack>
#include <string>
using namespace std;

int main() {
    int n;
    cin >> n;
    stack<string> str;
    for (int i = 0; i < n; i++) {
        string s;
        cin >> s;
        str.push(s);
    }
    while (!str.empty()) {
        cout << str.top();
        str.pop();
        if (!str.empty()) // 排除最后一个空格
            cout << " ";
    }

}

发表于 2023-03-22 20:59:08 回复(0)
#include<stdio.h>
#include<stack>
using namespace std;
int main(){
    int n;
    scanf("%d",&n);
    stack<long long> Stack;
    long long a[100000];
    for(int i=0;i<n;i++){
        scanf("%lld",&a[i]);
        Stack.push(a[i]);
    }
    for(int i=0;i<n;i++){
        printf("%lld ",Stack.top());
        Stack.pop();
    }
    printf("\n");
}
//第一行输入n(0 < n ≤ 10 000). 第二行输入元素ai (-1 000 000 000 000 000 ≤ ai ≤ 1 000 000 000 000 000).
//第一行输出反序

发表于 2023-03-01 18:09:19 回复(0)
#include <iostream>
#include <algorithm>
#include <stack>
using namespace std;

stack<int> S;
int main() {
    int n, temp;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> temp;
        S.push(temp);
    }
    for (int i = 0; i < n; i++) {
        cout << S.top() << " ";
        S.pop();
    }
    return 0;
}

发表于 2023-02-01 18:27:14 回复(0)
#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    while(cin>>n) {
        long long a[n];
        stack<long long> Stack;
        for(int i=0; i<n; i++) {
            cin>>a[i];
            Stack.push(a[i]);
        }
        while(!Stack.empty()){
            cout<<Stack.top()<<" ";
            Stack.pop();
        }
        cout<<endl;
    }
    return 0;
}
发表于 2022-10-05 20:14:18 回复(0)
import java.util.Scanner;
//双指针的思路
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int len = in.nextInt();
        int[] nums = new int[len];
        for(int i = 0 ;i<len;i++){
            nums[i] = in.nextInt();
        }
        int left = 0 ;
        int right = len-1;
        while(left<=right){
            int temp = nums[left];
            nums[left] = nums[right];
            nums[right] = temp;
            left++;
            right--;
        }
        for(int i:nums){
            System.out.print(i+" ");
        }
    }
}
发表于 2024-03-17 10:48:32 回复(0)
#include <iostream>
#include <stack>

using namespace std;

int main() {
    int n,a;
    stack<int> s;
    while (cin >> n) { // 注意 while 处理多个 case
        for(int i=0;i<n;i++){
            cin>>a;
            s.push(a);
        }
        while(!empty(s)){
            a=s.top();
            cout<<a<<' ';
            s.pop();
        }
    }
}
发表于 2024-03-06 17:13:09 回复(0)
#include <iostream>
#include <stack>
using namespace std;

int main() {
    int n;
    stack<long long>s;
    while (cin >> n) {
        while (n--) {
            long long num;
            cin >> num;
            s.push(num);
        }
        while (!s.empty()) {
            cout << s.top() << " ";
            s.pop();
        }
        cout << endl;
    }
    return 0;
}

发表于 2024-02-06 19:02:55 回复(0)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
#include <queue>
#include <stack>

using namespace std;

stack<long long> test;

int main(){
	int n;
	scanf("%d", &n);
	
	while (n--) {
		long long x;
		cin >> x ;
		test.push(x);
	}
	
	while (!test.empty()){
		cout << test.top() ;
		test.pop();
		if (!test.empty()) {
			cout << " " ;
		}
	}
	
	return 0;
}

发表于 2023-03-22 21:36:20 回复(0)
#使用string方法来做,效率差不多
#include<iostream>
#include<string>

using namespace std;

int main(){
    int k;
    cin>>k;
    string str;    
    getline(cin,str);
    getline(cin,str);
    int m = str.length() - 1;
    int n = m;

    while(k >= 1){
        while(m >= 0 && str[m] != ' ')
        m--;
        cout<<str.substr(m+1,n-m);
        k--;
        m--;
        n = m;
        if(k >= 0)
        cout<<' ';
    }
    return 0;

}
发表于 2023-03-07 19:19:47 回复(0)
#借用栈的思想,但要注意题目要求用long long类型,不过这道题用int也能对
#include "stdio.h"
#include "stack"
using namespace std;

int main(){
    int n;long long temp;
    stack<long longmyStack;
    while (scanf("%d",&n)!=EOF){
        for (int i = 0i < n; ++i) {
            scanf("%lld",&temp);
            myStack.push(temp);
        }
        while (!myStack.empty()){
            printf("%lld ",myStack.top());
            myStack.pop();
        }
    }
}
发表于 2023-02-13 17:59:30 回复(0)
#include<iostream>
#include<cstdio>
#include<stack>

using namespace std;
stack<long long>sequence;

int main() {
    int n;
    scanf("%d", &n);
    int number;
    for (int i = 0; i < n; i++) {
        scanf("%d", &number);
        sequence.push(number);
    }
    for (int i = 0; i < n; i++) {
        printf("%d ", sequence.top());
        sequence.pop();
    }
}
发表于 2022-03-04 14:14:27 回复(0)