2012-06-24 27 views
6

Gần đây, tôi được hỏi trong một câu hỏi phỏng vấn để đảo ngược một chuỗi trong perl. Tôi đã viết mã và họ muốn tôi đưa ra một số chuỗi ví dụ để kiểm tra nó. Tôi đã cho họ ví dụ như một chuỗi với vài ký tự, nhiều ký tự, ký tự không hợp lệ, v.v. Nhưng họ cũng hỏi chuỗi dài nhất mà tôi sẽ thử nghiệm là gì. Tôi không biết phải nói gì. Do đó câu hỏi này. Chuỗi dài nhất mà tôi có thể thử nghiệm trong mã perl là gì? Nó phụ thuộc vào điều gì? Bộ nhớ trên máy? Có giới hạn nào từ điểm đứng perl không?Chuỗi dài nhất tôi có thể có là gì?

+0

Bạn có nhận được công việc không? – simbabque

Trả lời

6

Tôi đang tìm cách xem liệu tôi có thể tìm thấy bất kỳ tài liệu chính thức nào về chuỗi dài nhất hay không. Tôi tìm thấy một số tại số http://perltutorial.org nói về Chuỗi:

Perl định nghĩa chuỗi là chuỗi ký tự. Chuỗi ngắn nhất không chứa ký tự hoặc chuỗi rỗng. Chuỗi dài nhất có thể chứa các ký tự không giới hạn chỉ giới hạn trong bộ nhớ có sẵn của máy tính của bạn.

Tôi không biết nếu điều này là chính thức đủ cho bạn. Nó sẽ được tốt đẹp để xem một cái gì đó trong FAQ hoặc Perldoc.

Bằng cách này, để chính thức đảo ngược một chuỗi trong Perl:

my $rev_string = reverse $string; 

này nằm trong Perl FAQ # 4 trong đó có một loạt các xử lý nội dung trong đó chuỗi. Các đảo ngược một chuỗi câu hỏi là một câu hỏi phỏng vấn lừa cũ để xem nếu ai đó biết công cụ phức tạp Perl của họ. Chắc chắn hầu hết mọi người đều biết reverse sẽ đảo ngược một mảng, nhưng họ cũng biết nó sẽ đảo ngược một chuỗi? Noobies sẽ làm việc ra một số loại thuật toán phức tạp và người phỏng vấn sẽ có lý do để cảm thấy tự mãn và không thuê người đó.

Cá nhân, nếu tôi đang phỏng vấn ai đó, tôi hỏi câu hỏi này và ai đó đã xuất hiện tại chỗ với thuật toán thanh lịch và chỉ cho tôi cách nó hoạt động với các ký tự ngắn, dài và không hợp lệ. Bạn luôn có thể tìm hiểu thủ đoạn Perl ngu ngốc mới, nhưng kiểu suy nghĩ nhanh chóng trên đôi chân của bạn là điều khó tìm.

Tôi đã học được mẹo đảo ngược chuỗi một thời gian dài trước đây khi có người hỏi tôi cùng một câu hỏi trong một cuộc phỏng vấn. Tôi tìm kiếm nó và tìm thấy nó trong FAQ và nhận ra rằng tôi đã làm điều đó sai. Tôi đã sử dụng Perl trong gần 20 năm và tôi không thể nghĩ ra một thời gian mà tôi từng phải đảo ngược một chuỗi Perl.

+5

perltutorial.org là [không khuyến khích] (http://perl-tutorial.org/rejected/), tất cả thông tin có vấn đề [bởi liên kết] (http://enwp.org/Association_fallacy). SO câu trả lời nên trích dẫn các nguồn lực có thẩm quyền, chất lượng cao. – daxim

+0

Các quá trình thường chỉ có thể truy cập một phần bộ nhớ của máy tính, do đó bạn có thể bị giới hạn ở mức thấp hơn bộ nhớ của máy tính. – ikegami

+0

@daxim - Tôi nhớ đọc một cái gì đó tương tự trong cuốn sách Camel, nhưng không thể tìm thấy nó. Tôi tìm thấy một tuyên bố tương tự như ở trên trong Perlmonk, nhưng không có tham chiếu ở đó. Có lẽ câu trả lời chính xác nên có được lâu hơn bạn có thể sẽ cần, vì vậy đừng lo lắng về nó._. –

5

Về cơ bản, nó phụ thuộc vào dung lượng bộ nhớ mà chương trình của bạn (có nghĩa là, Perl) có thể truy cập. Nếu bạn có một máy 32 bit, đó là một nơi nào đó dưới 4 GiB. Nếu bạn có một máy 64 bit, thì giới hạn có thể lớn hơn và phụ thuộc vào bộ nhớ ảo có sẵn. Không có giới hạn cố định.

+0

ok. Vậy làm cách nào để tạo chuỗi dài hay nói cách khác, tạo chuỗi dài nhất có thể để thực hiện thử nghiệm? Những gì tôi không chắc chắn là có ngay cả một cần phải có một chuỗi dài như là một trong những trường hợp thử nghiệm. – user238021

+2

@ user238021: điều này * sẽ * treo máy tính của bạn. Bạn đã được cảnh báo: perl -e 'in vô hướng đảo ngược một .. "z" x999' – jm666

Các vấn đề liên quan