unixの2つの文字列の最も長い共通部分文字列を見つけるためのシェルコマンドとは何ですか? は次のようになります:foo 'abcdefghi' 'abjklmdefnop' print:defunixの2つの文字列の最も長い共通部分文字列を見つけるためのシェルコマンドは何ですか?
答えて
これは長い共通のサブシーケンス問題として知られており、いくつかの素晴らしいアルゴリズムがあります。ダイナミックプログラミングソリューションをチェックしてください(Googleに実装すれば、たくさんの実装が見つかります)。あなたが本当にアルゴリズムレベルでこれを理解したい場合は、
この素晴らしいリンクをありがとう。しかし、今のところ、私はただの標準的なコマンドラインソリューションが必要なだけで、O(n^5)の複雑さで実装されているかどうかは気にしません。 – user1081596
@ user1081596:入力のサイズはどのくらいですか? – Daenyth
、このMITの講義をチェックアウト、私はあなたが、次のbashスクリプトが何をすべきのために仕事をして単一のコマンドがあるかどうかわかりませんそれ。ファイルsubstr.sh がそうであるように上記保存
#!/bin/bash
word1="$1"
word2="$2"
if [ ${#word1} -lt ${#word2} ]
then
word1="$2"
word2="$1"
fi
for ((i=${#word2}; i>0; i--)); do
for ((j=0; j<=${#word2}-i; j++)); do
if [[ $word1 =~ ${word2:j:i} ]]
then
echo ${word2:j:i}
exit
fi
done
done
ます。chmod + xのsubstr.sh
pranithk @ ~
09:24:32 :) $ ./substr.sh 'abcdefghi' 'abcdeghi'
abcde
pranithk @ ~
09:24:33 :) $ ./substr.sh 'abcdefghi' 'abjklmdefnop'
def
- 1. 3つの文字列の中で最も長い共通部分シーケンス
- 2. アルファベット順に最長の部分文字列を見つける
- 3. 2つの文字変数間の共通部分文字列を見つける
- 4. 最も長い共通部分文字列問題
- 5. 接尾辞ツリー(バイナリ文字列):最も長い部分文字列を見つけよう
- 6. bashだけで文字列内の部分文字列を見つけるためのマッチの使用
- 7. 文字列の部分文字列の範囲を見つける
- 8. テキストファイルの部分文字列を見つける最も速い方法
- 9. 文字列の最長部分文字列を持つ行を選択
- 10. Swift - [String]配列の最長文字列を見つけるベストプラクティス
- 11. 文字列コレクション内で最も同一の文字列を見つける
- 12. 2つの文字列の共通文字の数
- 13. 文字列中の最も長い複製された部分文字列を見つけるのにJava関数が必要ですか?
- 14. 指定された文字列の配列からすべての部分文字列を見つけるアルゴリズム
- 15. UNIXでファイル内の文字列を見つけるための速い方法
- 16. UILabelで部分文字列の座標を見つける
- 17. 最も長い共通部分列
- 18. 文字列配列の長さを見つける方法は?
- 19. LINQを使用して文字列[]内で最も長い文字列を見つける方法
- 20. 文字列の2つの部分をPHPで分離する
- 21. Mongodbのフィールドに部分文字列を見つける方法
- 22. 他の文字列内の最大類似部分文字列を見つける
- 23. 文字列に見つからない文字を見つけるJavaScript文字
- 24. 文字列中で最長類似サブシーケンスを見つける
- 25. このコードスニペットは、文字列からパリンドローム部分文字列をどのように見つけますか?
- 26. Railsで文字列の長さを見つけるには?
- 27. 文字列内で部分文字列が最初に出現する位置を見つける
- 28. 2つのタブページに共通の文字列を配置する
- 29. 文字列の最後の文字列を見つける方法
- 30. PyMongoで部分文字列を見つける
この必要性は、POSIXされるようにしていますか?任意の特定のディストリビューションをターゲットにしていますか? – Daenyth
それはほとんどのlinuxで動作させるのが最善です – user1081596
@ user1081596:これをperlで実装することをお勧めします。ユーザーがそれを削除しない限り、すべてのLinuxにインストールされるからです。 – Daenyth