c++ - CodeChef 的子序列等式

标签 c++ arrays

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

所以,这是别人的代码,我不明白的是为什么他们从数组中的字符串中减去 'a' 的 ASCII 值。这是问题和解决方案:

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

enter image description here

最佳答案

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

关于c++ - CodeChef 的子序列等式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46327183/

相关文章:

c++ - protected 外部资源使用

c++ - 英特尔 C++ 编译器 (icpc 14.0) : "a derived class is not allowed here"

php - 将数据从初始 XML 请求传递到后续页面

javascript - 来自嵌套数组的主干集合

java - 保存生命游戏中的所有世代以供以后访问

c++ - 为什么我的程序不打印完美整数?

c++ - 使用 pthread_cond_broadcast 并行执行?

python - 通过移动索引移动二维数组中的数据

C++ 在迭代 : standard solution is not working? 时删除列表成员

javascript - 如何动态填充三 Angular 形二维数组?