CodeChef的子序列平等

时间:2017-09-20 16:23:04

标签: c++ arrays

我是初学编码员(我在高中学习过C ++)现在我开始从竞争激烈的编程网站上解决问题。我试图解决这个问题,但并不是很成功。

所以,这是别人的代码,我无法理解的是为什么他们减去了' a'的ASCII值。来自数组内的字符串。这是问题和解决方案:

https://www.codechef.com/problems/LIKECS01 enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

在行if(a[s[i]-97] >= 2)中,我们实际上是在数组a的帮助下检查该特定字符(s [i])的出现(索引0表示a,索引1表示b,索引2表示c,以及等......).. 因为97是' a'的ascii代码。所以' a' -97会给你0,' b' - 97(即98 - 97)将给出1 ..等等。