奇妙なキーボード(ブルーブリッジカップ2015)

トピックはこれです:

奇妙なキーボード

制限時間:1秒   メモリ制限:128メガバイトを
送信:122   解決:24
[ 送信 ] [ ステータス ] [ フォーラム ]

説明

 

最近、科学者たちは、夜遅くに報告しますが、2つの文字、時には唯一の外にキーボードをタップし、時には、キーボードに一連の問題を非難していない論文に書きます。キーボードのバックスペースキーが壊れているに発生します。
あなたは彼が元に戻ったようである記事を、果たした、稀代のある科学者があることを知っている。
科学者たちは、文字列の満足度は、文字列は、このの排除に同じ2つの隣接する文字を持っている場合は、ようなものです2つの文字は、新しい文字列と隣接する同じ場合は、新しい文字列を形成し、その後、削除します。同じまでは隣接する二つの文字今のところありません。

 

 

入力

 

文字列の長さは、小文字の文字を含む、2 * 10 ^ 5より大きくありません

 

 

出力

 

科学者たちは、文字列に満足しています。

 

 

サンプル入力

reallazy

サンプル出力

カット

ヒント

 

サンプル文字列のような変更については、reallazy - > reaazy - > rezy。

 

////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////

今日の学生それらが0.0にこのトピックについて質問しました。

それがスタックをプッシュを再生する問題であると考えて、スタックは23333の上に記述します

(問題を読んで、たった2つの同一の文字隣接する場合があることに注意してくださいは、あまりにも多くの233 333とは思いません)

コードは以下の通りであります:

C:

1の#include <stdio.hの>
 2   
3  の#define MAX 200001
 4   
5  構造体スタック{
 6      チャーSZ [MAX]。
7      長いインデックス。
8  } S。 
9   
10  のint main()の
 11  {
 12      S.index = 0 13      チャー IP = 0 14      一方(EOF =のscanf(!" %のC "、およびIP))
 15      {
 16          であれば(IP = S.sz [S.index! - 1 ])
17              S.sz [S.index ++] = IP。
18          
19              S.index-- 20      }
 21      のためにINTは iは= 0 ; I <S.index; I ++ 22      {
 23          のputchar(S.sz [I])。
24      }
 25      リターン 0 26 }

 

C ++:

1の#include <iostreamの> 
 2の#include <両端キュー>
 3  
4  使用して 名前空間STDを、
5  
6  INT メイン()
 7  {
 8つの      IOS :: sync_with_stdio()。
9      両端キュー< チャー > D。
10      文字のIP;
11      一方(CIN >> IP)
 12      {
 13          であれば(d.size()&& IP == d.back())
 14              d.pop_back()。
15          
16              d.push_back(IP)。
17     }
 18      ながら(d.size())
 19      {
 20          COUT << d.front()。
21          d.pop_front()。
22      }
 23      リターン 0 24 }

 

 

Javaの:

1つの インポートjava.util.Scanner。
2  
3  パブリック クラスメイン{
 4      パブリック 静的 ボイドメイン(文字列[]引数){
 5          INT A = 0 6          スキャナSC = 新しいスキャナ(System.in)。
7          のchar [] SZ = 新しい 文字 [200001 ]。
8          int型のインデックス= 0 9          INT iが= 0 ;
10          文字列str。
11          一方(sc.hasNext())
 12          {
 13             STR = sc.next()。
14              一方(指数< str.length())
 15              {
 16                  であれば(I> 0 && str.charAt(インデックス)== SZ [I - 1 ])
 17                  {
 18                      i-- 19                  }
 20                  他の
21                  {
 22                      SZ [I ++] = str.charAt(インデックス)
23                  }
 24                  インデックス++ 25              }
 26              のためのint型 J = 0; J <I、J ++27              {
 28                  System.out.print(SZ [J])。
29              }
 30              i = 0 ;
31              インデックス= 0 32          }
 33      }
 34 }

隋Suinian:一度だけWAのうちに実行されます場合は、Javaだけで、65,534文字を処理することができます。

おすすめ

転載: www.cnblogs.com/lost-legacy/p/12112008.html