Best Cow Line (POJ#3617)
♥0 |
Line 22 |
Modified 2012-03-05 21:45:59 |
MIT License
archived:2017-03-20 03:50:22
ActionScript3 source code
/**
* Copyright TmskSt ( http://wonderfl.net/user/TmskSt )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/fHkA
*/
package {
/*
* BestCowLine (POJ#3617)
* http://poj.org/problem?id=3617
*
*
* 問題
*
* N文字の文字列Sが与えられ、N文字の文字列Tを作ります。
* はじめはTは長さ0の文字列で、次のいずれかの操作が行えます。
* ・Sの先頭を1文字削除し、Tの末尾に追加する。
* ・Sの末尾を1文字削除し、Tの末尾に追加する。
* 辞書順比較でできるだけ小さくなるようにTを作ってください。
*
* 『プログラミングコンテストチャレンジブック 第2版』より引用
*/
public class BestCowLine extends Example {
private static const N:int = 6;
private var S:String = "ACDBCB";
private var T:String = "";
public function BestCowLine() {
var i:int = 0;
f(i);
trace(T);
function f(i:int):void {
var s:Number = S.charCodeAt(i);
var e:Number = S.charCodeAt(S.length - 1 - i);
if (s == e) f(++i);
var p:int = (s < e) ? 1 : 0;
T += S.substr(p ? 0 : S.length - 1, 1);
S = S.slice(p, p + S.length - 1);
if (S.length > 1) f(i = 0);
}
}
}
import com.actionscriptbible.Example;
}