Java 查詢字串的子串是否是迴文字串的程式
以下是 Java 中迴文子字串查詢的一個示例 -
示例
public class Demo{
static final int max_val = 256;
static boolean compare_vals(char my_arr_1[], char my_arr_2[]){
for (int i = 0; i < max_val; i++)
if (my_arr_1[i] != my_arr_2[i])
return false;
return true;
}
static void search_subs(String my_pattern, String my_text){
int pat_len = my_pattern.length();
int txt_len = my_text.length();
char[] count_pat = new char[max_val];
char[] count_txt = new char[max_val];
for (int i = 0; i < pat_len; i++){
(count_pat[my_pattern.charAt(i)])++;
(count_txt[my_text.charAt(i)])++;
}
for (int i = pat_len; i < txt_len; i++){
if (compare_vals(count_pat, count_txt))
System.out.println("The element was found at index " + (i - pat_len));
(count_txt[my_text.charAt(i)])++;
count_txt[my_text.charAt(i-pat_len)]--;
}
if (compare_vals(count_pat, count_txt))
System.out.println("The element was found at index " + (txt_len - pat_len));
}
public static void main(String args[]){
String my_text = "ABNFGHABNJGH";
String my_pattern = "NFGH";
search_subs(my_pattern, my_text);
}
}輸出
The element was found at index 2
一個名為 Demo 的類定義了一個常量值,以及一個布林函式,該函式接收兩個陣列。它迭代遍歷這兩個陣列,直至達到常量值。根據在陣列中比較的元素是否相等或不相等,它返回 true 或 false。
另一個靜態函式接收文字和需要在文字中查詢的模式,並迭代遍歷模式和字串。模式和字串的計數值均遞增。同樣,將執行一個“迴圈”,並比較模式和文字的計數值。如果它們相等,則顯示索引。否則,將顯示相關訊息。在主類中,定義模式和文字,並呼叫函式。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式語言
C++
C#
MongoDB
MySQL
Javascript
PHP