//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 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入...