fork download
  1. /*
  2. 674 :デフォルトの名無しさん:2015/03/09(月) 17:18:44.92 ID:gk6yvFxP
  3.   仕様
  4.   ・a要素の中にはb要素とテキストを挿入できる
  5.   ・b要素にはテキストのみ挿入できる。
  6.   ・要素は閉じなければならない<要素名></要素名>
  7.  
  8.   制約
  9.   ・テキストは[a-zA-Z0-9]のみで最大100文字の長さである事が保証される
  10.   ・要素はaとbの二つしか存在しないことが保証される。
  11.   ・テストに使われる文字列は[<>/a-z-A-Z0-9]のみが保証される
  12.  
  13.   以下は正しい構造である
  14.   <a>ruby<b>php</b>python</a><a><b></b></a><a></a>
  15.  
  16.   お題
  17.   与えられた文字列が正しい構造であれば1、正しくなければ0を出力しなさい
  18.   <a>ruby<b>php</b>python</a><a></b></a><a></a>
  19.   <a>ruby<b>php</b>python</a><a><b></a><a></a>
  20.   <a>ruby<b>php</b>python</a><a><b></b></a><a>
  21.   vvvc<a>ruby<b>php</b>python</a><a><b></b></a><a></a>
  22. */
  23.  
  24. importPackage(java.io);
  25. importPackage(java.lang);
  26.  
  27. var test = function(str) {
  28. if (!str.match(/^([\w\d]*|<\/?[ab]>)*$/))
  29. return false;
  30. str = str.replace(/<a>/g, "[").replace(/<\/a>/g, "],").replace(/<b>[\w\d]*<\/b>/g, "").replace(/[\w\d]+/g, "1,");
  31. str = "[" + str + "]";
  32. try {
  33. eval(str)
  34. return true;
  35. } catch (e) {
  36. return false;
  37. }
  38. };
  39.  
  40. var check = function(str) {
  41. System.out.println(str + ": " + (test(str) ? 1 : 0));
  42. }
  43.  
  44. check("<a>ruby<b>php</b>python</a><a><b></b></a><a></a>");
  45. check("<a>ruby<b>php</b>python</a><a></b></a><a></a>");
  46. check("<a>ruby<b>php</b>python</a><a><b></a><a></a>");
  47. check("<a>ruby<b>php</b>python</a><a><b></b></a><a>");
  48. check("vvvc<a>ruby<b>php</b>python</a><a><b></b></a><a></a>");
  49.  
Success #stdin #stdout 0.54s 322560KB
stdin
Standard input is empty
stdout
<a>ruby<b>php</b>python</a><a><b></b></a><a></a>: 1
<a>ruby<b>php</b>python</a><a></b></a><a></a>: 0
<a>ruby<b>php</b>python</a><a><b></a><a></a>: 0
<a>ruby<b>php</b>python</a><a><b></b></a><a>: 0
vvvc<a>ruby<b>php</b>python</a><a><b></b></a><a></a>: 1