我是一名初学者编码员(我在高中学习了 C++),现在我开始解决这个竞争激烈的编程网站上的问题。我试图解决这个问题,但不太成功。
所以,这是别人的代码,我不明白的是为什么他们从数组中的字符串中减去 'a' 的 ASCII 值。这是问题和解决方案:
最佳答案
在 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/