トピック住所:https://www.nowcoder.com/pat/6/problem/4059
ソリューション:配列の添字番号を使用して、直接シミュレーション
1 / * * 2 * 3 OF *:Ycute 。4 *時間:2019-12-01-21.33.21 5 *は、トピックタイトルの簡単な記述を意図:配列添字の数字と、直接シミュレーションを 6 * / 7。 8。 9。の#include <入出力ストリーム> 10の#include <cmath> 11の#include <CStringの> 12であるの#include <アルゴリズム> 13であるの#include <ベクトル> 14 使用 名前空間STD; 15 int型のmain(){ 16 BOOLのフラグ[ 350 ] = { 0 }; 17 チャー TEMP [ 100005 ]; 18 scanf関数(" %sの" 、TEMP)。 19 のために(INT iは= 0 ; iは<strlenを(TEMP); I ++ ){ 20 であれば((TEMP [i]が> = ' A ' && TEMP [I] <= ' Z ')||(TEMP [I]> = ' ' && TEMP [I] <= ' Z ' )){ 21 であれば(TEMP [I]> = ' A ' && TEMP [I] <= ' Z ' ){ 22 フラグ[TEMP [I] = 1 。 フラグ[TEMP [I] + 32 ] = 1 ; 24 } 他{ 25 フラグ[TEMP [I] = 1 。 26 フラグ[TEMP [I] - 32 ] = 1 ; 27 } 28 } 他{ 29 フラグ[TEMP [I] = 1 。 30 } 31 } 32 GETCHAR()。 33 のscanf(" %sの" 、TEMP)。 34 のための(int型私は= 0 ; I <strlenを(TEMP); I ++ ){ 35 であれば((TEMP [I]> = ' A ' && TEMP [I] <= ' Z ')||(TEMP [I]> = ' ' && TEMP [I] <= ' Z ' )){ 36 であれば(TEMP [I]> = ' A ' && TEMP [I] <= ' Z ' ){ 37 であれば(!フラグ[TEMP [I]]){ 38 であれば( !フラグ[ ' + ']){ 39 のprintf(" %のC " 、TEMP [I])。 40 } 41 } 42 } 他{ 43 であれば(!フラグ[TEMP [I]]){ 44 のprintf(" %のC " 、TEMP [I])。 45 } 46 } 47 } 他{ 48 であれば(!フラグ[TEMP [I]]){ 49 のprintf(" %のC " 、TEMP [I])。 50 } 51 } 52 } 53 リターン 0 ; 54 }