leetcode 3461 判断操作后字符串中的数字是否相等I
一、题目描述



二、解题思路
整体思路
可以采用模拟的方法来解决这个问题。
具体思路
(1)首先进行特殊情况处理。如果s.size<2,就无需进行操作,直接返回false即可;
(2)当s的size大于2时,进入主循环:
<1>n用于记录当前s的长度,current用于记录当前操作后s的状态;
<2>遍历字符串s,对每个位置(除字符串长度为奇数最后一位无需操作)进行题目所述的操作:
1)计算i位置和i+1位置两个字符的计算结果ch;
2)将计算结果ch加入current;
<3>内部循环结束后,更新s的值为current;
(3)通过判断返回结果:
<1>如果s[0]==s[1],return true;
<2>否则,返回false;
三、代码实现
class Solution {
public:bool hasSameDigits(string s) {//特殊情况处理if(s.size()<2) return false;while(s.size()>2){int n=s.size();string current;for(int i=0;i!=n-1;i++){char ch=(s[i]+s[i+1]-'0'-'0')%10+'0';current.push_back(ch);}s=current;}if(s[0]==s[1]) return true;return false;}
};
