[質問のプログラミング]巧妙な編集を考えたことはありません
制限時間:C / C ++ 1秒、他の言語でのスペースの制約の2秒:C / C ++ 32M、64M、他の言語
、私は王のハンマー、出版社のためのエディタです。私は多くの人が毎日、スペルの間違いを修正する必要があるため、この作業は、非常に迷惑です、英語への原稿提出の校正を担当していました。しかし、良い人々は、常に通常の作業で真実を見つけることができます。私はショートカットがスペルミス見つけることが見つかりました:
- 一緒に同じ3つの文字、スペルミスされている必要があり、千百万の除去:このようhelllo - >こんにちは
- 文字(AABB型)の二対が一緒に連結されているように、エラーをスペルする必要があり、千百万文字第二の対を削除します。そのようなhellooを - >ハロー
- 上記ルール優先AABBとBBCCはスペルミスがあるAABBを修復する優先権を与えるべきであるが、それは、AABBCCある場合、結果はAABCCあると、一致「左から右」
私は特にニャー天才です!Lanxiangで学ん私は、この原則は、作業効率から離陸、自動検証を書いたによると、掘削機やプログラミングを持っていました。もうすぐ、私は、取締役会会長になった、CEOとしての白フォーマイカと結婚、人生の頂点にかかっただろう、それについて興奮すべての少しを考えます!
私はトレッキングトレッキングライン乾燥することにより行、行単位で、人のラインならば、サブポイント、勤勉、私は解雇、そしてボスを離れる前に私に言った:.「専用にする事をやって思ったことはありません。そうでない場合は、ドライ彼の党の何行目は、彼の党はないトレッキングないんではないでしょう。「私は今、トランス活況を呈し、全人です......
質問に耳を傾けてください:スレッジハンマー自動校正プログラムを実感してください
入力説明:
最初の行番号N、実施備えると共に検証するために、この文字列の数を含みます。
N行に続いて、それぞれのパリティ文字列であるように作用します。
出力説明:
N行、修復すべき文字列を含む各行。
例1つの
入力
2
helloo
wooooooow
輸出
こんにちは
woow
思考
ここで私は、ステートマシンを使用する方法ではなく、最適なソリューション、ライン上で見て、ちょうど習慣的な記録ではあります。
その他、ダブルポインタ現場修正されたアルゴリズムは、より優れて使い他人をコピーし、あなたは自分の主題領域の学習にコメントすることができます。
答え
package main
import "fmt"
func main() {
var n int
var str string
fmt.Scan(&n)
for ;n>0;n--{
fmt.Scan(&str)
if len(str)<=2{
fmt.Println(str)
}
flag:=0
tmp:=string(str[0])
for i:=1;i<len(str);i++{
switch flag {
case 0:
tmp=tmp+string(str[i])
if str[i]==str[i-1]{
flag=1
}
case 1:
if str[i]!=str[i-1]{
tmp=tmp+string(str[i])
flag=2
}
case 2:
if str[i]!=str[i-1]{
tmp=tmp+string(str[i])
flag=0
}
}
}
fmt.Println(tmp)
}
}