[질문] palindrome 문제 "공장장이 장이다."

오호라의 이미지

입력 : "공장장이 장이다."
출력 : "장장", "장이 장", "이 장이"
 
문제> 모든 펠린드롬을 찾아라. 
 
예) "이 공장장 장공이"
 
"이 공장장 장공이", "공장장 장공", "장장 장", "장장", "장 장"

작년에 풀어본 문제인데 다시금 생각해보니까. 조금 더 깔끔한 해결이 있지 않을까해서 고수님들의 조언을 얻고자 합니다.^^;

ps. 예전 xx과xxx 면접문제였는데 탈락한후에 혹시나 답안지를 담당자분에게 얻을수 있을까 했는데... 역시나 안되더군요. (ㅠㅠ.)

aero의 이미지

Perl로 짜봤습니다.
공백을 고려해야 해서 좀 애로가 있네요.

#!/usr/bin/perl
use strict;
use warnings;
 
my $input =<STDIN>;
chomp $input;
 
my @arr = split //, $input;
foreach my $s ( 0 .. $#arr-1 ) {
    foreach my $e ( $s+1 .. $#arr ) {
        next if ( $arr[$s] eq ' '  or  $arr[$e] eq ' ' );
        my $str = join '',grep $_ ne ' ', @arr[$s .. $e];
        if ( $str eq reverse $str ) {
            print join '', map $_, @arr[$s .. $e],"\n";
        }
    }
}

결과

공장장이 장이다

abbc bcd <-입력
bb
bc b
c bc

이 공장장 장공이

a bcc cba <- 입력
a bcc cba
bcc cb
cc
cc c
c c

오호라의 이미지

문자열은 perl!! 쵝오!!~ ^^;

Hello World.