Bài tập - Chuỗi trả về từ phương pháp
Bạn thường có thể thấy rằng bạn cần viết một phương pháp trả về một chuỗi. Ví dụ: bạn có thể muốn truy xuất chuỗi từ một tập hợp dữ liệu hoặc sửa đổi chuỗi theo một cách nào đó. Trong bài tập này, bạn sẽ có được một số kinh nghiệm làm việc với các chuỗi trong các phương pháp trong khi thực hành một câu hỏi phỏng vấn phổ biến.
Tạo phương pháp trả về chuỗi
Giả sử bạn là một ứng cử viên trong một cuộc phỏng vấn mã hóa. Người phỏng vấn yêu cầu bạn viết một phương pháp để đảo ngược một chuỗi mà không sử dụng string.Reverse. Dành chút thời gian để suy nghĩ về cách bạn có thể hoàn thành nhiệm vụ này.
Bạn có thể đã quyết định rằng bạn có thể đảo ngược một chuỗi bằng cách tiếp nối từ cuối chuỗi. Bạn có thể sử dụng một chuỗi tạm thời để lưu trữ từng chữ cái từ đầu đến cuối. Hãy bắt đầu!
Trong Trình soạn thảo Mã Visual Studio, xóa bất kỳ mã hiện có nào khỏi các bài tập trước đó.
Nhập mã sau đây vào trình soạn thảo:
string ReverseWord(string word) { string result = ""; return result; }Phương pháp này cần diễn giải qua từ đã cho và cập nhật kết quả. Để thực hiện điều này, hãy cập
ReverseWordnhật phương pháp với mã sau:string ReverseWord(string word) { string result = ""; for (int i = word.Length - 1; i >= 0; i--) { result += word[i]; } return result; }Trong khối mã này, bạn bắt đầu từ cuối từ bằng cách sử dụng
word.Length - 1. Bạn trừ một từ độ dài kể từ khi các chỉ số mảng bắt đầu bằng không và bạn muốn tránh truy nhập một phần tử ngoài giới hạn. Sau đó, bạn thêm chữ cái tại chỉ mục hiện tại vào chuỗiresultvà di chuyển chỉ mục lùi lại. Bạn sửi >= 0dụng kểitừ khi được cập nhật sau khi mã trong vòng lặp được thực hiện, và bạn muốn chắc chắn để bao gồm các chỉ số zeroth.
Kiểm tra mã của bạn
Khi mã hóa, điều quan trọng là phải thường xuyên kiểm tra công việc của bạn. Việc tìm và sửa lỗi sớm trong quá trình mã hóa cho phép bạn dành nhiều thời gian hơn để xây dựng dựa trên mã đúng hơn là gỡ lỗi một chương trình lớn. Việc kiểm tra công việc của bạn thường xuyên là một kỹ năng mà những người phỏng vấn mã hóa cũng đánh giá cao.
Nhập một dòng mã trống mới. Sau đó, tạo một số văn bản đầu vào và gọi phương pháp của bạn bằng cách nhập mã sau đây ở trên phương
ReverseWordpháp:string input = "snake"; Console.WriteLine(input); Console.WriteLine(ReverseWord(input));Nếu cần, hãy mở pa-nen Đầu cuối Tích hợp của Visual Studio Code.
Tại dấu nhắc lệnh Terminal, hãy nhập dotnet run. So sánh đầu ra của bạn với các mục sau:
snake ekansNếu mã của bạn hiển thị kết quả không mong muốn, bạn cần phải xem lại mã của mình để tìm lỗi và cập nhật. Chạy lại mã để xem bạn đã khắc phục sự cố chưa. Tiếp tục cập nhật và chạy mã của bạn cho đến khi mã của bạn tạo ra kết quả mong đợi.
Tạo một phương pháp để đảo ngược các từ trong một câu
Giả sử người phỏng vấn của bạn hỏi bạn một câu hỏi theo dõi. Họ muốn bạn đảo ngược từng từ trong một câu đã cho, duy trì vị trí ban đầu của từng từ. Bạn có thể giả định mỗi từ được phân tách bởi một khoảng trắng. Ví dụ: "string return type" sẽ trở thành "gnirts nruter epyt". Dành chút thời gian để suy nghĩ về cách bạn có thể thực hiện tác vụ này.
Nếu bạn sử dụng phương pháp bạn đã viết trong tác vụ trước, bạn có thể nhận ra rằng bạn có thể sử dụng phương pháp để đảo ngược từng từ trong chuỗi riêng lẻ. Bạn có thể tạo một câu mới và thêm từng từ khi nó đảo ngược. Hãy bắt đầu!
Tạo một dòng mã trống mới ở cuối chương trình hiện tại. Sau đó, nhập mã sau đây để tạo phương pháp mới:
string ReverseSentence(string input) { string result = ""; return result; }Tiếp theo, bạn có thể trích xuất từng từ riêng lẻ từ chuỗi bằng cách sử dụng
string.Split. Cập nhật phươngReverseSentencepháp sau đây:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); return result; }Bây giờ bạn có quyền truy nhập vào từng từ riêng lẻ trong câu, bạn
ReverseWordcó thể sử dụng phương pháp của mình trên từng từ và lưu trữ chúng trongresult.Cập nhật phương
ReverseSentencepháp sau đây:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result; }Lưu ý làm thế nào bạn có thể gọi phương
ReverseWordpháp bên trong của một nhà điều hành gán hợp chất. Trong mã này, giá trị trả lại được ghi lại từ vàReverseWordthêm vàoresult. Các phương pháp có giá trị trả về có thể được dùng ở bất kỳ đâu bạn cần, miễn là kiểu dữ liệu phù hợp với yêu cầu.Trong mã này, mỗi từ đảo ngược được nối vào kết quả với một khoảng trắng bổ sung. Tuy nhiên, điều này để lại một khoảng trống bổ sung ở cuối câu đảo ngược.
Bạn có thể loại bỏ khoảng trống bổ sung ở cuối bằng cách sử dụng
string.Trim. Cập nhật phương pháp cho mã sau đây:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result.Trim(); }Dành chút thời gian để xem xét kết quả trả về của phương pháp này. Một phương pháp có thể sử dụng các phương pháp khác trong suốt quá trình thực thi và ngay cả trong câu lệnh return, miễn là các kiểu dữ liệu khớp nhau.
Bây giờ bạn đã sẵn sàng để gọi phương thức của bạn!
Cập nhật văn
inputbản và câuConsole.WriteLinelệnh sau đây:string input = "there are snakes at the zoo"; Console.WriteLine(input); Console.WriteLine(ReverseSentence(input));
Kiểm tra công việc của bạn
Trong tác vụ này, bạn sẽ chạy ứng dụng của mình từ Thiết bị đầu cuối Tích hợp và xác minh rằng mã của bạn đang hoạt động đúng cách. Hãy bắt đầu.
So sánh mã của bạn với các mã sau để đảm bảo mã chính xác:
string input = "there are snakes at the zoo"; Console.WriteLine(input); Console.WriteLine(ReverseSentence(input)); string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result.Trim(); } string ReverseWord(string word) { string result = ""; for (int i = word.Length - 1; i >= 0; i--) { result += word[i]; } return result; }Lưu công việc của bạn sử + Ctrl S hoặc sử dụng menu Tệp Mã Visual Studio.
Nếu cần, hãy mở pa-nen Đầu cuối Tích hợp của Visual Studio Code.
Trong pa nen EXPLORER, để mở Một Thiết bị đầu cuối tại vị trí thư mục TestProject của bạn, hãy bấm chuột phải vào TestProject, sau đó chọn Mở trong Thiết bị đầu cuối tích hợp.
Tại dấu nhắc lệnh Terminal, hãy nhập dotnet chạy
Xác minh rằng mã của bạn tạo ra đầu ra sau đây:
there are snakes at the zoo ereht era sekans ta eht oozNếu mã của bạn hiển thị các kết quả khác nhau, bạn sẽ cần xem lại mã của mình để tìm lỗi và cập nhật. Chạy lại mã để xem bạn đã khắc phục sự cố chưa. Tiếp tục cập nhật và chạy mã của bạn cho đến khi mã của bạn tạo ra kết quả mong đợi.