1:#### 判斷是個整數是否是迴文python
#!/usr/bin/python
# coding=utf-8
def ishuiwen(num):
if num <0 or num%10==0:
### 負數 或者末尾是0 的確定不是迴文
return False
i=0
while i < num:
i = i*10+num%10
num = num/10
return (num == i) or (i/10 == num)數組
2:/**求一個字符串連續不重複的長度 acdd = 3, 1122345 = 4*/app
/**求一個字符串連續不重複的長度 acdd = 3, 1122345 = 4*/ public static void findStringMaxNoSame(String st){ Map<Character,Integer> map = new HashMap<Character,Integer>(); int j =0; int max =0; for(int i = 0; i < st.length(); i++){ if(map.containsKey(st.charAt(i))){ if(map.get(st.charAt(i)) > j){ j = i; } } map.put(st.charAt(i),i); if(max < (i -j +1) ){ max = i =j +1; } } System.out.println("max = [" + max+ "] j = "+j); }
3. /**求一個子數組的最大的和**/ui
/**求一個子數組的最大的和**/ public static void maxSubArrayList( int[] array){ int max =0; int tmpMax =0; for(int i=0; i < array.length; i++){ tmpMax += array[i]; if(tmpMax <0){ tmpMax=0; continue; } if(tmpMax > max){ max =tmpMax; } } //所有爲負數的時候 if(max==0){ max = array[0]; for(int i=1; i < array.length; i++){ if(max < array[i]){ max = array[i]; } } } System.out.println("array sub max = [" + max + "]"); }
4. 給定一個數字A,返回數組中和等於A的兩個數子的index public static void getAddIndexs(int[] array,int specalValue){ //1<= specaVaue 放入map //減掉的數據是否在map中 Map<Integer,Integer> map = new HashMap<Integer,Integer>(); for(int i =0; i < array.length;i++){ if((specalValue >= array[i]) && map.containsKey((specalValue-array[i]))){ //有結果 System.out.println(map.get((specalValue - array[i])) + " " + i); } map.put(array[i],i); } }
5./*反轉一個32位的整數,主要溢出*/utf-8
/*反轉一個32位的整數,主要溢出*/ public static void reverse(int x) { // if x <0 處理; 處理相似: 1000 String abs = String.valueOf(x); String intMax = String.valueOf(Integer.MAX_VALUE); StringBuffer sb =new StringBuffer(); sb.append(abs); abs = sb.reverse().toString(); if(intMax.compareTo(abs)<0){ System.out.println("x reverse = [" + 0 + "]"); }else{ System.out.println("x reverse = [" + Integer.parseInt(abs) + "]"); } } public static int reversev0(int x) { int result = 0; while (x != 0) { int tail = x % 10; int newResult = result * 10 + tail; if ((newResult - tail) / 10 != result)//往回計算,利用溢出作比較 { return 0; } result = newResult; x = x / 10; } return result; }