資料結構 Java實現 簡單回文

2021-07-08 20:40:26 字數 1832 閱讀 8223

//t(n)=o(n),s(n)=o(1)

public

class palindromestring

for(int i=0,j=str.length()-1;iif(str.charat(i)!=str.charat(j))

}return

true;

}}@test

public

void

test()

//只考慮字母和數字,忽略大小寫,t(n)=o(n),s(n)=o(1)

public

class validpalindrome else

}public boolean ispalindrome(string s)

s=s.tolowercase();

for(int i=0,j=str.length()-1;iwhile(iwhile(iif(str.charat(i)!=str.charat(j))

}return

true;

}}@test

public

void

test()

//不能使用陣列、集合、字串 s(n)=o(1)

//負數不回文,單個數字回文

/**x=1245421

*n=1245421

求整數字數方法wei()

*t=1000000=10^(wei()-1)

*利用%10求個位數字可得x/t%10求首位,n%10求末尾來判斷首末兩位是否相等

*///t(n)=o(n)

public

class

palindromenumber

return count;

}public

intpow(int m, int n)

return multy;

}public bollean ispalindrome(int x)else

if(x<10)elseelse

}return

true;}}

@test

public

void

test()

}

public

class lps

}return

true;

}//窮舉法暴力求解,列出所有子串依次判斷

//t(n)=o(n^3),s(n)=o(1)

public string longestplindrome01(string s)else}}

}return s.substring(from, to+1);}}

//中心擴充套件法,從中間往兩邊讀是一樣的,這樣只用一次遍歷

//t(n)=o(n^2),s(n)=o(1)

public string longestplindrome02(string s)else

}if(len>max)

start=i-1;

end=i+1;

len=1; //子串長度

left=right;

right=end;

while(start>=0&&endif(s.charat(start)==s.charat(end))else

}if(len>max)

}return s.substring(maxleft,maxright+1);

}//manacher方法留白,日後再寫吧,= =! t(n)=o(n)

@test

public

void

test()

}

資料結構 JAVA實現簡單的順序表

public inte ce ilist 順序錶類sqlist的 public class sqlist implements ilist 置空操作 public void clear 判斷當前長度是否為0,為0即為空表 public boolean isempty 取表長度,返回curlen當前長...

資料結構 Java實現 排序

直接插入排序 希爾排序 二分插入 簡單選擇排序 堆排序歸併排序 快速排序 氣泡排序 桶式排序 基數排序 插入排序由n 1趟排序組成,對於p 1到p n 1趟,保證位置0到p上的元素為已排序狀態。在第p趟,將位置p上的元素向左移動到正確位置。s n o n 2 public static super ...

資料結構 Java實現佇列

佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 head 進行刪除操作,而在表的後端 tail 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入...