このディレクトリの索引

# 出題場所 :: http://toro.2ch.net/test/read.cgi/tech/1357191974/910 # お題:2文字以上の文字列が与えられたとき、隣り合う文字の大きい方の文字を # 隣り合う文字の間に挿入した文字列を返す。 # 例 # "Personal" -> "Peerrsssoonnall" # "Hello, world!" -> "Heellllooo,, wwworrrlldd!" # # '2文字以上の文字列が与えられたとき、隣り合う文字の大きい方の文字を隣り合う文字の間に挿入した文字列を返す。'(_文字列,_全ての隣り合う文字の大きい方の文字を隣り合う文字の間に挿入した文字列) :- findall(_副文字列_2,( sub_atom(_文字列,_,2,_残り文字数,_副文字列), 隣り合う文字の大きい方の文字を隣り合う文字の間に挿入(_副文字列,_残り文字数,_副文字列_2)),L), atomic_list_concat(L,_全ての隣り合う文字の大きい方の文字を隣り合う文字の間に挿入した文字列). 隣り合う文字の大きい方の文字を隣り合う文字の間に挿入(_副文字列,_残り文字数,_副文字列_2) :- 隣り合う2文字の大きい方の文字(_副文字列,_文字_1,_文字_2,_大きい方の文字), 隣り合う文字の大きい方の文字を隣り合う文字の間に挿入(_残り文字数,_文字_1,_文字_2,_大きい方の文字,_副文字列_2). 隣り合う文字の大きい方の文字を隣り合う文字の間に挿入(0,_文字_1,_文字_2,_大きい方の文字,_副文字列_2) :- atomic_list_concat([_文字_1,_大きい方の文字,_文字_2],_副文字列_2),!. 隣り合う文字の大きい方の文字を隣り合う文字の間に挿入(_,_文字_1,_文字_2,_大きい方の文字,_副文字列_2) :- atomic_list_concat([_文字_1,_大きい方の文字],_副文字列_2). 隣り合う2文字の大きい方の文字(_2文字,_文字_1,_文字_2,_大きい方の文字) :- sub_atom(_2文字,0,1,_,_文字_1), sub_atom(_2文字,1,1,_,_文字_2), 隣り合う文字の大きい方の文字(_文字_1,_文字_2,_大きい方の文字). 隣り合う文字の大きい方の文字(_文字_1,_文字_2,_文字_1) :- _文字_1 @>= _文字_2. 隣り合う文字の大きい方の文字(_文字_1,_文字_2,_文字_2) :- _文字_1 @< _文字_2.