最近、インタビューの質問でperlの文字列を逆にするように頼まれました。私はコードを書いて、テストするための文字列をいくつか与えることを希望しました。私はそれらにいくつかの文字列、多くの文字、無効な文字などの例文を与えました。しかし、彼らはまた、私がテストする最も長い文字列が何であるか尋ねました。私は何を伝えるべきか分からなかった。 したがって、この質問。 perlコードでテストできる最長の文字列は何ですか?それは何に依存していますか?マシンのメモリ? perlスタンドポイントには何らかの制限がありますか?私が持つことができる最長の文字列は何ですか?
答えて
最長の文字列に関する公式文書を見つけることができるかどうかを検討していました。私はhttp://perltutorial.orgで見つかった文字列について:
Perlは文字列を一連の文字として定義します。最短の文字列には文字も空文字列も含まれません。 最長の文字列には、コンピュータの使用可能なメモリに制限されている無制限の文字を含めることができます。
これは公式十分なあなたのためにあるかどうかはわかりません。 FAQやPerldocで何かを見ていただければ幸いです。これは、その中に文字列処理原料の束を持っているのPerlのFAQ#4である
my $rev_string = reverse $string;
:正式にPerlで文字列を逆にするところで
、。 の文字列を逆に質問は、誰かが彼らの秘密のPerlのものを知っているかどうかを確認するための古いトリックのインタビューの質問です。ほとんど誰もがreverse
が配列を逆転することを知っていますが、文字列を逆にすることも知っていますか? Noobiesは、複雑なアルゴリズムのいくつかの並べ替えを実行し、インタビュアーはその人を抱きしめていないと感じる理由があります。
個人的には、誰かにインタビューしていたら、私はこの質問をしました。誰かがエレガントなアルゴリズムで現場に現れ、短くて長くて無効な文字で動作する方法を教えてくれました。あなたはいつでも新しい愚かなPerlのトリックを学ぶことができますが、すぐにあなたの足のタイプの思考は見つけるのは難しいものです。
誰かが私にインタビューで同じ質問をしたとき、私はずっと前に逆のストリングトリックを学んだ。私はそれを見て、FAQでそれを見つけ、私がそれをしたことを実現しましたは間違ってです。私はPerlをほぼ20年間使用してきました。Perl文字列を逆転させなければならなかった時代を考えることはできません。
perltutorial.orgは[推奨しない](http://perl-tutorial.org/rejected/)、すべての情報が疑わしい[by連合](http://enwp.org/Association_fallacy)。 SOの回答は、信頼できる質の高いリソースを挙げるべきです。 – daxim
多くの場合、プロセスはコンピュータのメモリの一部にしかアクセスできないため、コンピュータのメモリよりもはるかに制限されている可能性があります。 – ikegami
@daxim - 私はキャメルブックで何か似たようなことを覚えていますが、それを見つけることはできませんでした。私はPerlmonkの上記と同様の記述を見つけましたが、そこには参照がありません。たぶん正解はおそらく必要以上に長くなっているはずですので、心配しないでください。 –
基本的には、プログラム(つまりPerl)がアクセスできるメモリの量によって異なります。あなたが32ビットのマシンを持っているなら、それは4 GiBの下にあります。 64ビットマシンを使用している場合は、使用可能な仮想メモリによって制限値が大きくなる可能性があります。固定の制限はありません。
だから、どのように長い文字列を作成するか、言い換えれば、テストのために可能な最長の文字列を作成することができますか?私がよく分からないのは、テストケースの1つとして長い文字列を持つ必要があるということです。 – user238021
@ user238021:この*コンピュータはハングします。あなたは警告されている:perl -e 'print scalar reverse a .. "z" x999' – jm666
- 1. 長さの異なる2つの文字列が同じハッシュコードを持つことはできますか?
- 2. 私はこの文字列が持つ配列
- 3. マッチ文字、私は次のように持つことができ、文字列内のパターン
- 4. この文字は何ですか:?類似の文字はどこで見ることができますか?
- 5. Cビルド文字列charで既知の最大長を持つ文字
- 6. 私は、文字列持つ文字列
- 7. 私はこのような何かに見える文字列が文字列
- 8. JsonNodeが、私はこの形式のJSON持つ文字列
- 9. が、私はこのような文字列持つC#の
- 10. Swiftのメソッドが持つことができるパラメータの最大数は何ですか?なぜですか?
- 11. 文字列での作業と私はこのような何か持って
- 12. 文字列の最長部分文字列を持つ行を選択
- 13. 長い文字化けの文字列とOcraまたはRuby2Exeの終わりは何ですか?ここ
- 14. '√'を持つ文字列をeval()に与えることができる文字列に変換します。
- 15. 私はC++プログラムで何lua_Stateを持つことができますか?
- 16. が、私はこのような文字列があると、長い文字列のPHP
- 17. スプリット選択私は、フォームの長いPython文字列持つ
- 18. 私は、この文字列持つ文字
- 19. 長い文字列から文字列を解析する最も良い方法は何ですか?
- 20. 私はこのような何かに見える文字列持つ文字列
- 21. は、私は、次の2つの文字列持つ文字列
- 22. wsdlファイルのparamの最小文字列と最大文字列の長さを要求できますか?
- 23. 分割文字列とは、私は、文字列持つ
- 24. 私はこの文字列が持っている別の文字列
- 25. 私は、これらの文字列で構成ベクトル持つベクトル
- 26. 最大並行Ble接続とは何ですかandroid M +が持つことができる
- 27. は、私はこのようになります文字列持つ文字列
- 28. プロセスがウィンドウ内に持つことができるスレッドの最大数は何ですか?
- 29. ページがAEMに持つことができる最大のバージョンは何ですか?
- 30. することは、私は、このような文字列持つ
あなたは仕事を得ましたか? – simbabque