mọi người cho mình hỏi, mình có 1 string ví dụ như “NguyenVanA”, mình muốn random lại vị trí, xáo trộn các phần tử kiểu như “ganAnNyeuV” chẳng hạn, ai có giải thuật nào ngắn gọn có thể giúp mình không ạ
Về random string trong java
tự viết đi, chỉ là đảo lộn thứ tự chữ cái thôi mà
Mình có cái cách này. Dài và thủ công lắm
- Tách từng char ra thành một mảng.
- Tới từng chữ cái một. Random chọn 1 trong 2 giá trị True hoặc False. Nếu True thì swapcase cho char đó (xor với 32 cho nhanh). ‘a’ -> ‘A’, ‘A’ -> ‘a’
- shuffle mảng đó. Nếu không có hàm hỗ trợ việc shuffle thì tự viết lấy một cái
Google: Scramble String + < Ngôn ngữ Lập trình >
package try_chap1;
public class try_part2 {
public static void main(String[] arg){
String[] chu = {“a”,“b”,“c”,“d”,“e”,“f”,“g”,“h”,“t”,“u”,“o”,“p”,“q”,“r”,“y”,“i”,“x”,“w”}; // đổi các giá trị bên trong nếu bạn muốn
final int max = 17; // số lớn nhất
final int min = 0;// số nhỏ nhất
int range = (max - min) + 1;
int soan = (int)(Math.random() * range) + min; //Thuật toán sẽ tự động ra số bất kì từ 0-17;
System.out.println(chu[soan]);
}
}
dùng cái hàm rand() rồi % cho lenght chuỗi nếu trùng thì rand() tiếp ko trùng thì swap dễ mà swap rand() mấy lần tùy thích rand() lấy chỉ số nhé
Bài cả năm trước rồi giờ còn vào đào
Đây là bài toán shuffle, dùng thuật toán này là được
Implement dễ cực.