繁体   English   中英

比较两个字符串,如果它们向后相等

[英]Compare two strings and if they are equal backwards

可以说我们有两个输入。 一个是123,一个是321。现在,这两个应返回True。

另一个例如。 543和345。

这是我走了多远:

int a,i=0;

printf("condition value");
scanf("%d",&i);

printf("comparison value");
scanf("%d",&a);

a=a%10;
i=a/10;

if(a==i){
   printf("\nTrue");
}

有谁知道如何解决这个问题?

如果您想知道一个字符串是否与另一个字符串的反向匹配,只需逐个字符地进行比较。 即使可以保证所有字符都是数字,也可以更轻松地解决字符串域中的问题。

即使有些数字理论上的技巧可以为您提供固定大小整数的封闭形式解决方案,但首先将字符串解析为int的过程要比仅进行字符比较的循环要慢。

通常,您可以利用输入限制来简化代码,但这似乎不是这种情况之一。

给定OP要基于此注释检查整数

只需反转其中一个数字

一次从x删除最低有效位。 使用该值建立x 请注意,“ x的倒数”的范围比unsigned的范围宽。

使用unsigned以避免签名问题。

unsigned long long unsigned_rev(unsigned x) {
  unsigned long long rev = 0;
  while (x) {
    rev = rev*10 + x%10;
    x /= 10;
  }
  return rev;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM