uva 11988 brooken keyboard(悲劇テキスト)
あなたは壊れたキーボードを持っています.すべてのキーは正常に動作します. 和 endボタンは時々自動的に押します.この問題の存在を知らないで、一心不乱に原稿を書いて、スクリーンさえ開けていません.スクリーンを開けたら、悲劇のテキストです.あなたの任務はこの悲劇のテキストを計算することです.
サンプル入力
This_is_a_[Beiju]_テキスト
[][][]Happy_Birthday_to_Tsuinghua.ユニバーサルシティ
サンプル出力
BeijuThis_is_a_.テキスト
Happy_Birthday_to_Tsuinghua.ユニバーサルシティ
考え方:1つの文字を取り、カーソルの位置に挿入するには、チェーンで実現しなければなりません.配列で要素を頻繁に移動すると、タイムアウトします.
ポインターリンク:
サンプル入力
This_is_a_[Beiju]_テキスト
[][][]Happy_Birthday_to_Tsuinghua.ユニバーサルシティ
サンプル出力
BeijuThis_is_a_.テキスト
Happy_Birthday_to_Tsuinghua.ユニバーサルシティ
考え方:1つの文字を取り、カーソルの位置に挿入するには、チェーンで実現しなければなりません.配列で要素を頻繁に移動すると、タイムアウトします.
ポインターリンク:
#include
#include
using namespace std;
struct node
{
char c;
node *next;
};
int main()
{
string s;
node *head ,*tail,*p;
while(cin>>s)
{
p=new node;
p->next=NULL;
int len = s.size();
head=tail=p;// , ,
for(int i=0;ic=ch;
np->next = p->next;// p
p->next = np;
p=np;
if(p->next==NULL)tail = p;//
}
}
node *q = head->next;
node *pre;
while(q!=NULL)
{
cout<c;
pre=q;
q = pre->next;
delete pre;
}
delete head;
cout<
stl リスト:#include
#include
#include
#include
using namespace std;
const int maxn = 100000+5;
int main()
{
list l;
char s[maxn];
while(scanf("%s",s)==1)
{
int n=strlen(s);
list::iterator it=l.begin();
for(int i=0;i