/*
674 :デフォルトの名無しさん:2015/03/09(月) 17:18:44.92 ID:gk6yvFxP
仕様
・a要素の中にはb要素とテキストを挿入できる
・b要素にはテキストのみ挿入できる。
・要素は閉じなければならない<要素名></要素名>
制約
・テキストは[a-zA-Z0-9]のみで最大100文字の長さである事が保証される
・要素はaとbの二つしか存在しないことが保証される。
・テストに使われる文字列は[<>/a-z-A-Z0-9]のみが保証される
以下は正しい構造である
<a>ruby<b>php</b>python</a><a><b></b></a><a></a>
お題
与えられた文字列が正しい構造であれば1、正しくなければ0を出力しなさい
<a>ruby<b>php</b>python</a><a></b></a><a></a>
<a>ruby<b>php</b>python</a><a><b></a><a></a>
<a>ruby<b>php</b>python</a><a><b></b></a><a>
vvvc<a>ruby<b>php</b>python</a><a><b></b></a><a></a>
*/
importPackage(java.io);
importPackage(java.lang);
var test = function(str) {
if (!str.match(/^([\w\d]*|<\/?[ab]>)*$/))
return false;
str = str.replace(/<a>/g, "[").replace(/<\/a>/g, "],").replace(/<b>[\w\d]*<\/b>/g, "").replace(/[\w\d]+/g, "1,");
str = "[" + str + "]";
try {
eval(str)
return true;
} catch (e) {
return false;
}
};
var check = function(str) {
System.out.println(str + ": " + (test(str) ? 1 : 0));
}
check("<a>ruby<b>php</b>python</a><a><b></b></a><a></a>");
check("<a>ruby<b>php</b>python</a><a></b></a><a></a>");
check("<a>ruby<b>php</b>python</a><a><b></a><a></a>");
check("<a>ruby<b>php</b>python</a><a><b></b></a><a>");
check("vvvc<a>ruby<b>php</b>python</a><a><b></b></a><a></a>");