Google code jam: Problem B. Reverse Words
Given a list of space separated words, reverse the order of the words. Each line of text contains
L
letters and W
words. A line will only consist of letters and space characters. There will be exactly one space character between each pair of consecutive words. Input
The first line of input gives the number of cases, N. N test cases follow. For each test case there will a line of letters and space characters indicating a list of space separated words. Spaces will not appear at the start or end of a line.
Output
For each test case, output one line containing "Case #x: "followed by the list of words in reverse order.
Limits
Small dataset
N = 5 1 ≤ L ≤ 25
Large dataset
N = 100 1 ≤ L ≤ 1000
Sample
Input
Output
3
this is a test
foobar
all your base
Case #1: test a is this
Case #2: foobar
Case #3: base your all
내 코드:
#include <cstdio>
#include <iostream>
#include <string>
using namespace std;
//#define SMALL
#define LARGE
void main()
{
#ifdef SMALL
freopen("B-small-practice.in","r",stdin);
freopen("B-small-practice.out","w",stdout);
#endif
#ifdef LARGE
freopen("B-large-practice.in","r",stdin);
freopen("B-large-practice.out","w",stdout);
#endif
string re_Line[1000];
int N;
cin>>N;
char t;
getchar(t);//No.1
for(int i=0;i<N;i++)
{
string Line;
char temp[1000];
getline(cin,Line);//No.2
int k=0,start=0;
for(int j=0;j<Line.size();j++)
{
temp[j-start]=Line[j];
if(Line[j]==' ')
{
temp[j-start]='\0';
start=j+1;
re_Line[k] = temp;
k++;
}
if(j==Line.size()-1)
{
temp[j-start+1]='\0';
re_Line[k] = temp;
k++;
}
}
cout<<"Case #"<<i+1<<": ";
for(int count=k-1;count>=1;count--)
{
cout<<re_Line[count]<<' ';
}
cout<<re_Line[count]<<endl;
}
}
이 문제는 주로 문자열에 대한 처리를 고찰한다.내 코드에 C++ 표준 라이브러리 헤더 파일로 정의된string 클래스를 사용했습니다.대략적인 사고방식은 getline () 함수를 이용하여 줄을 바꿀 때까지 읽는 것이다.그러나 이전에 N을 입력했을 때 버퍼에 줄 바꾸기 문자를 남겼다.getline () 을 직접 사용하면 줄 바꾸기를 만나면 끝납니다. 빈 문자열을 얻을 수 있습니다.그래서 No.1에 getchar () 를 사용하여 버퍼를 비웠습니다.그리고 줄마다 문자열을 읽습니다.읽은 후에 이 문자열을 옮겨다니고 빈칸이 있으면 처리합니다.그리고 맨 뒤의 문자는 빈칸이 없다.조심해.
C++ 표준 라이브러리에 대한 헤더 파일이 없습니다.h의, C 표준 라이브러리에서 계승된 헤더 파일은 앞에서 c를 추가할 수 있다. 예를 들어ctype.h는 C++ 표준 라이브러리에서cctype입니다.그리고 C++ 표준 라이브러리는 이 헤더 파일의 이름 공간 std를 설명해야 합니다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.