CCF 201709-3 JSON照会(100点)
6551 ワード
試験問題番号:
201709-3
試験問題名:
JSON照会
時間制限:
1.0s
メモリの制限:
256.0MB
問題の説明:
問題記述JSON(JavaScript Object Notation)は、半構造化されたデータを記述するために使用できる軽量レベルのデータ交換フォーマットです.JSON形式の基本単位は値(value)であり、簡略化の目的で本題は2種類の値のみを含む:*文字列(string):文字列は二重引用符で囲まれた文字のセット(空でもよい).文字列の内容に二重引用符が表示された場合、二重引用符の前に反スラッシュを付ける.つまり、で表します.反スラッシュが表示された場合は、2つの反スラッシュ\で表します.反スラッシュの後ろには表示されません.たとえば、「」、「hello」、""\".*オブジェクト(object):オブジェクトは、キー値ペアの無秩序なセットです(空でもかまいません).キー値ペアは、オブジェクトのプロパティを表し、キーはプロパティ名、値はプロパティの内容です.オブジェクトは左かっこ{で始まり、右かっこ}最後に、キー値ペア間をカンマで区切ります.キー値のペアのキーと値の間には、コロン:区切ります.キーは文字列でなければなりません.同じオブジェクトのすべてのキー値ペアのキーは2つとも異なる必要があります.値は文字列でも別のオブジェクトでもかまいません.例:{},{「foo」:「bar」},{「Mon」:「weekday」,「Tue」:「weekday」,「Sun」:「weekend」}.文字列の内部の位置を除いて、他の位置に1つ以上のスペースを挿入することで、JSONの表示がより美しくなり、一部の場所で改行することもでき、表示されたデータの内容に影響を与えません.例えば、上述した最後のJSONデータは、以下のように書くこともできる.{"Mon":"weekday","Tue":"weekday","Sun":"weekend"}は、JSON形式で記述されたデータと、いくつかのクエリーを提供し、これらのクエリーの結果をプログラミングして返します.入力フォーマットの1行目は2つの正の整数nとmであり、それぞれJSONデータの行数とクエリの個数を表す.次にn行は、入力が正当なJSONオブジェクトであることを保証するJSONデータを記述する.次にm行で、各行にクエリーが記述されます.クエリーするプロパティ名を指定し、対応するプロパティの内容を返す必要があります.多層クエリーをサポートする必要があり、各層の属性名の間に小数点を用いる.接続.クエリーのフォーマットが合法であることを保証します.出力フォーマット入力された各クエリーに対して、クエリー結果が順次出力され、各結果が1行を占めます.クエリの結果が文字列である場合、STRINGが出力されます.ここでは文字列の値であり、中央はスペースで区切られます.クエリ結果がオブジェクトである場合、オブジェクトの内容を出力する必要がないOBJECTが出力されます.クエリ結果が存在しない場合、NOTEXISTが出力されます.サンプル入力10 5{"firstName":"John","lastName":"Smith","address":{"streetAddress":"2 ndStreet","city":"NewYork","state":"NY"},"esc\aped":""hello""}firstName address.city address.postal escapedサンプル出力STRING John OBJECT STRING NewYork NOTEXIST STRING“hello”評価用例規模と約束n≦100、1行80文字を超えない.m≦100で、各クエリの長さは80文字を超えない.文字列の文字はすべてASCIIコード33-126の印刷可能な文字で、スペースは表示されません.すべての文字列は空欄ではありません.キーとしての文字列には小数点は含まれません.クエリー時のキーの大文字と小文字は敏感です.50%の評価用例入力の対象は1層構造のみであり、80%の評価用例入力の対象構造層数は2層を超えない.たとえば,{"a":"b"}は1層構造のオブジェクトであり,{"a":{"b":"c"}}は2層構造のオブジェクトであるとする.
問題接続:CCF 201709-3 JSON照会
問題を解く構想:問題の意味によってシミュレーションして、具体的にプログラムの注釈を見ます
提出後100点を得たC++プログラム:
第1版(時間:2018.08.07)第2版をお勧めしますよ
第2版(時間:2019.03.12)
201709-3
試験問題名:
JSON照会
時間制限:
1.0s
メモリの制限:
256.0MB
問題の説明:
問題記述JSON(JavaScript Object Notation)は、半構造化されたデータを記述するために使用できる軽量レベルのデータ交換フォーマットです.JSON形式の基本単位は値(value)であり、簡略化の目的で本題は2種類の値のみを含む:*文字列(string):文字列は二重引用符で囲まれた文字のセット(空でもよい).文字列の内容に二重引用符が表示された場合、二重引用符の前に反スラッシュを付ける.つまり、で表します.反スラッシュが表示された場合は、2つの反スラッシュ\で表します.反スラッシュの後ろには表示されません.たとえば、「」、「hello」、""\".*オブジェクト(object):オブジェクトは、キー値ペアの無秩序なセットです(空でもかまいません).キー値ペアは、オブジェクトのプロパティを表し、キーはプロパティ名、値はプロパティの内容です.オブジェクトは左かっこ{で始まり、右かっこ}最後に、キー値ペア間をカンマで区切ります.キー値のペアのキーと値の間には、コロン:区切ります.キーは文字列でなければなりません.同じオブジェクトのすべてのキー値ペアのキーは2つとも異なる必要があります.値は文字列でも別のオブジェクトでもかまいません.例:{},{「foo」:「bar」},{「Mon」:「weekday」,「Tue」:「weekday」,「Sun」:「weekend」}.文字列の内部の位置を除いて、他の位置に1つ以上のスペースを挿入することで、JSONの表示がより美しくなり、一部の場所で改行することもでき、表示されたデータの内容に影響を与えません.例えば、上述した最後のJSONデータは、以下のように書くこともできる.{"Mon":"weekday","Tue":"weekday","Sun":"weekend"}は、JSON形式で記述されたデータと、いくつかのクエリーを提供し、これらのクエリーの結果をプログラミングして返します.入力フォーマットの1行目は2つの正の整数nとmであり、それぞれJSONデータの行数とクエリの個数を表す.次にn行は、入力が正当なJSONオブジェクトであることを保証するJSONデータを記述する.次にm行で、各行にクエリーが記述されます.クエリーするプロパティ名を指定し、対応するプロパティの内容を返す必要があります.多層クエリーをサポートする必要があり、各層の属性名の間に小数点を用いる.接続.クエリーのフォーマットが合法であることを保証します.出力フォーマット入力された各クエリーに対して、クエリー結果が順次出力され、各結果が1行を占めます.クエリの結果が文字列である場合、STRINGが出力されます.ここでは文字列の値であり、中央はスペースで区切られます.クエリ結果がオブジェクトである場合、オブジェクトの内容を出力する必要がないOBJECTが出力されます.クエリ結果が存在しない場合、NOTEXISTが出力されます.サンプル入力10 5{"firstName":"John","lastName":"Smith","address":{"streetAddress":"2 ndStreet","city":"NewYork","state":"NY"},"esc\aped":""hello""}firstName address.city address.postal escapedサンプル出力STRING John OBJECT STRING NewYork NOTEXIST STRING“hello”評価用例規模と約束n≦100、1行80文字を超えない.m≦100で、各クエリの長さは80文字を超えない.文字列の文字はすべてASCIIコード33-126の印刷可能な文字で、スペースは表示されません.すべての文字列は空欄ではありません.キーとしての文字列には小数点は含まれません.クエリー時のキーの大文字と小文字は敏感です.50%の評価用例入力の対象は1層構造のみであり、80%の評価用例入力の対象構造層数は2層を超えない.たとえば,{"a":"b"}は1層構造のオブジェクトであり,{"a":{"b":"c"}}は2層構造のオブジェクトであるとする.
問題接続:CCF 201709-3 JSON照会
問題を解く構想:問題の意味によってシミュレーションして、具体的にプログラムの注釈を見ます
提出後100点を得たC++プログラム:
第1版(時間:2018.08.07)第2版をお勧めしますよ
#include
#include
#include
第2版(時間:2019.03.12)
#include
#include
#include