回文字串
回文字串 例如: abcdedcba對稱的字串就是回文字串。
我們知道字串再記憶體中是存在一段連續的空間中的,這樣若想判斷回文字串,根據回文字串的特性,可以使用兩個指標,乙個指標指向字串頭部,另乙個指向尾部。相向一次對比,直到兩個指標相遇,若是每個字元都相同則可判定是回文字串。
int is_pal(char* str)
start++;
end--; }
對稱位置內容相等
return 1;
}int main()
; int ret = 0;
scanf("%s", str);
ret = is_pal(str);
if (ret == 1)
printf("不是回文字串\n");
system("pause");
return 0;
}
回文數字
判斷數字是否是回文數 例如: 1234321
獲取最高位 1234321 / 10^6 = 1
數字除以和它相同數量級的10 的冪
獲取最低位 和10求餘
進行比較
掐頭去尾 在進行比較 掐頭去尾這個數縮小100倍
掐頭: 和相同數量級的10 的冪做 % 運算 1234321 % (10^6) = 234321
去尾: 除10 234321 / 10 = 23432
int is_pal(int n)
//判斷數字是否為回文數
while (n > 9)
//掐頭: 去掉最高位
n %= div;
//去尾: 去掉最低位
n /= 10;
div /= 100;
} return 1;
}int main()
判斷回文串,判斷回文數,最長回文串,回文串的個數
判斷乙個字串是否是回文串,首先了解下它的定義 回文串 是乙個正讀和反讀都一樣的字串,比如 level 或者 noon 等等就是回文串。所以判斷是否是回文串,判斷這個字串是否對稱即可。從而用兩個指標同時向中間掃瞄即可判斷。判斷字串是否是回文串,即判斷是否對稱。兩邊指標同時向中間掃瞄,判斷是否相等,不等...
回文數字判斷
題目描述 有這樣一類數字,他們順著看和倒著看是相同的數,例如 121 656 2332 等,這樣的數字就稱為 回文數字。編寫乙個函式,判斷某數字是否是回文數字。要求實現函式 int ispalindrome int inumber 輸入 inumber 整型數字 輸出 0 不是回文數字 1 是回文數...
棧 回文判斷
判斷乙個棧是不是 回文 回文,英文palindrome,指順著讀和反過來讀都一樣。由棧的資料結構可知,棧是乙個先進後出的資料結構,因此為了判斷該棧是否是乙個回文棧,我們可以將棧的一半彈出來,壓入另外乙個棧,然後再進行判斷他們對於資料是否相同即可。當棧的長度為偶數時 我們只需要彈出一半的資料,然後可直...