プログラムのアルゴリズムについてです。以下のようなパスが数十個あるとします。

/usr/local/aaa/bbb/abc
/usr/local/aaa/bbb/aaa/bb
/usr/local/bb/ccc
/usr/local/ccc/ddd/eee/fff
/usr/local/bb/ccc/def
この時、包括するディレクトリパスをもれなく取得したい。
例えばこの場合だと、
/usr/local/aaa
/usr/local/bb/ccc
/usr/local/ccc
になります。(/usr/local のみはNG。出来るだけ下の階層まで)
この処理を実装するスマートな方法を教えてください。力ずくでやったものはNGです。
言語はpythonがベターですが、他でも良いです。よろしくお願いします。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/10/06 20:41:00
  • 終了:2010/10/13 20:45:03

回答(4件)

id:fenstrial No.1

fenstrial回答回数57ベストアンサー獲得回数142010/10/06 20:49:15

ポイント30pt

質問が成立していない、もしくは例示が誤っているのでは?


指定されたパスすべてを含むパスなら/usr/local(と/と/usr)しか存在しない。


「出来るだけ下の階層まで」とするなら、

/usr/local/aaa/bbb/abc

/usr/local/aaa/bbb/aaa/bb

/usr/local/ccc/ddd/eee/fff

/usr/local/bb/ccc

が回答になる。(/usr/local/bb/ccc/defのみ/usr/local/bb/cccに含まれて消える)

id:sohei

日本語が誤りなのはすみません。

例を示してますのでそちらが正しいと思っていただければ。

2010/10/06 23:15:38
id:yossiy7 No.2

勇者よっしー回答回数778ベストアンサー獲得回数962010/10/06 22:10:26

/usr/local/ccc

が包括URLとなる理由がどうやっても思いつきませんが。

他の人も言ってますが、これは例題ミスでしょうね。

id:sohei

セットで包括という意味で書きました。

2010/10/06 23:17:04
id:tama213 No.3

tama213回答回数486ベストアンサー獲得回数302010/10/06 23:03:01

ポイント30pt

すべてのディレクトリを取得して

/usr/localをカット

で、後は文字列処理でやればいい。

id:sohei

その文字列処理の部分を具体的にお願いします。

/usr/local も例なので、その部分の判定も合わせて。

2010/10/06 23:13:07
id:HowAreYou No.4

HowAreYou回答回数91ベストアンサー獲得回数172010/10/07 16:14:06

ポイント30pt

いまいち条件が絞れません。

/usr/local/aaa/bbb/abc
/usr/local/aaa/bbb/aaa/bb
/usr/local/aaa/bbb/aaa/ccc

の場合、すべてに共通する

/usr/local/aaa/bbb/

だけなのか、

/usr/local/aaa/bbb

/usr/local/aaa/bbb/aaa

のふたつが得られるのでしょうか。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません