1. Có phần tử trùng lặp
2. Không có phần tử trùng lặp
3. Không có phần tử trùng lặp (in ra tất cả các từ thỏa mãn)
1.
public class Test {
public static void main(String[] args) {
String input = "chào bạn, đây là ví dụ về đổi ký tự thứ hai thành in hoa";
String[] words = input.split("\\s+");
StringBuilder result = new StringBuilder();
int max = 0;
for (int i = 0; i < words.length; i++) {
int x = words[i].length();
if (x > max) {
max = x;
result.setLength(0); // Xóa nội dung hiện tại của StringBuilder
result.append(words[i]);
}
}
System.out.println("Từ dài nhất trong chuỗi: " + result.toString());
System.out.println("Độ dài của từ dài nhất: " + max);
}
}Khi chạy đoạn mã này, bạn sẽ nhận được kết quả là:
Từ dài nhất trong chuỗi: thành
Độ dài của từ dài nhất: 72.
public class Main {
public static String findLongestUniqueWord(String input) {
String[] words = input.split("\\s+");
String longestWord = "";
int maxLength = 0;
for (String word : words) {
if (word.length() > maxLength && isUnique(word)) {
maxLength = word.length();
longestWord = word;
}
}
return longestWord;
}
public static boolean isUnique(String word) {
for (int i = 0; i < word.length(); i++) {
for (int j = i + 1; j < word.length(); j++) {
if (word.charAt(i) == word.charAt(j)) {
return false;
}
}
}
return true;
}
public static void main(String[] args) {
String input = "Tìm từ dài nhất trong chuỗi mà không có phần tử trùng lặp";
String longestWord = findLongestUniqueWord(input);
System.out.println("Từ dài nhất không có phần tử trùng lặp trong chuỗi là: " + longestWord);
}
}Kết quả sẽ là:
Từ dài nhất không có phần tử trùng lặp trong chuỗi là: trong3.
Để in ra tất cả các từ có độ dài lớn nhất và không có phần tử nào được lặp lại, bạn có thể sử dụng một mảng (hoặc danh sách) để lưu trữ tất cả các từ thỏa mãn điều kiện và sau đó in ra tất cả các từ trong danh sách đó. Dưới đây là cách thực hiện điều này trong Java:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static List<String> findLongestUniqueWords(String input) {
String[] words = input.split("\\s+");
List<String> longestWords = new ArrayList<>();
int maxLength = 0;
for (String word : words) {
if (word.length() > maxLength && isUnique(word)) {
maxLength = word.length();
longestWords.clear();
longestWords.add(word);
} else if (word.length() == maxLength && isUnique(word)) {
longestWords.add(word);
}
}
return longestWords;
}
public static boolean isUnique(String word) {
for (int i = 0; i < word.length(); i++) {
for (int j = i + 1; j < word.length(); j++) {
if (word.charAt(i) == word.charAt(j)) {
return false;
}
}
}
return true;
}
public static void main(String[] args) {
String input = "Tìm từ dài nhất trong chuỗi mà không có phần tử trùng lặp";
List<String> longestWords = findLongestUniqueWords(input);
if (longestWords.isEmpty()) {
System.out.println("Không có từ nào thỏa mãn điều kiện.");
} else {
System.out.println("Các từ dài nhất không có phần tử trùng lặp trong chuỗi là:");
for (String word : longestWords) {
System.out.println(word);
}
}
}
}Kết quả sẽ là:
Các từ dài nhất không có phần tử trùng lặp trong chuỗi là: trong, chuỗi, không, trùng
Không có nhận xét nào:
Đăng nhận xét