Hỏi thuật toán đảo ngược chuỗi kí tự

mình có đoạn code đảo ngược tên, nhưng đọc mãi không hiểu, bạn nào giải thích dùm mình.

	 /* VI DU VU TIEN THANH ->>> THANH VU TIEN
	 ***/
	/* TEN-> HO-> DEM */
 public static String daoTen(String str) {
		String[] temp = str.split(" ");
		str = "";
		str = temp[temp.length - 1] + " ";
		for (int i = 0; i < temp.length - 1; i++) {
			str = str + temp[i] + " ";
		}
		return str;
}

code c ha ban de minh viet lai cho nha

đây là java bạn ơi…

Bạn tự code hay của người khác vậy ? Theo mình hiểu thì đoạn code này chỉ đảo ngược được chuỗi 3 từ, bạn thử test chuỗi 4 từ vd “một hai ba bốn” xem sẽ thấy

Còn nếu bạn muốn tự xây dựng lại hàm thì mình gợi ý bạn google về phương thức splip trong java, nó là phương thức cắt chuỗi thành 1 mảng các char

Bạn nên tạo 2 biến. 1 biến vị trí đầu. 1 biến vị trí cuối.
Rồi dùng while để lắp cho tới khi hai biến bằng nhau thì dừng

Bạn đang hỏi thuật toán mà. Chứ có hỏi code đâu ông

Thuật toán đảo ngược chuỗi bất kỳ:
Chuỗi ban đầu ten = “THANH VU TIEN”

  1. Cắt chuỗi ban đầu thành từng từ và cho vào mảng String[] temp // cắt bằng split("\s+");
  2. Đặt lại giá trị của chuỗi ban đầu = “”
  3. Duyệt vòng for cho i chạy từ (temp.lengh - 1) đến 0 (từ vị trí cuối đến đầu của mảng temp[]):
    3.1 Mỗi lần duyệt thì cộng dồn từ đó vào biến String ten: ten = temp[i] + " ";
  4. Output mong đợi: “TIEN VU THANH”

Đảo ngược mảng trả về từ hàm split() là được mà :))

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?