题目描述
中心对称数是指一个数字在旋转了 180 度之后看起来依旧相同的数字(或者上下颠倒地看)。
请写一个函数来判断该数字是否是中心对称数,其输入将会以一个字符串的形式来表达数字。
示例 1:
输入: "69"
输出: true
示例 2:
输入: "88"
输出: true
示例 3:
输入: "962"
输出: false
白话题目:
单个数字翻转就还是原先的69 转转转 还是69 。
算法:
这个题其实是这样的
-------->变成这个样子的。
这里面适合这么玩的数字只有 0 1 6 8 9 而这些里面还可以分两类
0 1 8 他们都有自己翻转的特性。
6 9 这两个一对
详细解释关注 B站 【C语言全代码】学渣带你刷Leetcode 不走丢 https://www.bilibili.com/video/BV1C7411y7gB
C语言完全代码
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
bool isStrobogrammatic(char * num)
{
int len = strlen(num);
int i=0;
for ( i = 0; i < len / 2 + 1; i++)
{
if (((num[i] == '0') || (num[i] == '1') || (num[i] == '8')) && (num[i] == num[len - 1 - i]))
{
continue;
}
else if ((num[i] == '6') && (num[len - 1 - i] == '9'))
{
continue;
}
else if ((num[i] == '9') && (num[len - 1 - i] == '6'))
{
continue;
}
else
{
return false;
}
}
return true;
}
int main()
{
printf("数字的字符数组\n");
char *num;
num=(char *)malloc(sizeof(char));
gets(num);
int result=isStrobogrammatic(num);
printf("%d\n",result);
return 0;
}