解题思路

特别地,对于C++,需要使用 getline(cin,s) 而非 cin>>s 的方式读入带空格的字符串。

代码

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main(void)
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	string s,tmp,ans;
	int t,n;
	cin>>t>>ws;
	while(t--)
	{
		cin>>n>>ws; // ws 用于去除多余的控制符(\r 和 \n)
		getline(cin,s);
		ans=tmp="";
		for(auto &e:s)
		{
			if(e==' ')
			{
				if(!tmp.empty())
				{
					ans+=tmp;
					tmp.clear();
				}
			}
			else
				tmp+=e;
		}
		ans+=tmp;
		reverse(ans.begin(),ans.end());
		cout<<ans<<'\n';
	}
	return 0;
}
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String s;
        int t,n;
        s=sc.nextLine();
        t=Integer.parseInt(s);
        while(t-->0){
            s=sc.nextLine();
            n=Integer.parseInt(s);
            s=sc.nextLine();
            String[] a=s.split(" ");
            String b=String.join("",a);
            b=new StringBuilder(b).reverse().toString();
            System.out.println(b);
        }
    }
}
t=int(input())
for _ in range(0,t):
    n=int(input())
    s=input()
    a=list(map(str,s.split()))
    s=''.join(a)
    s=s[::-1]
    print(s)

算法及复杂度

  • 算法:枚举。
  • 时间复杂度:
  • 空间复杂度: