在 C++ 中长按名称


假设一个人正在键盘上打字。有时,会错误地长按某些按钮。因此,它可能会输入一个或多个额外的字符。因此,我们将获取两个字符串,并检查第二个字符串是否为长按名称。因此,如果名称为“Amit”,第二个字符串“Ammittt”是长按名称。但“Ammttt”不是,因为这里没有字符 i。

为解决这个问题,我们将遵循以下步骤:

  • 设 j := 0
  • 对于 i := 0,i < second.size,i 加 1
    • 如果 j < actual_name.size 且 actual_name[j] = second[i],则将 j 加 1
  • 当 j = actual_name.size 时返回 true,否则返回 false

示例

让我们看一个实现,以获得更好的理解:

 在线演示

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   bool isLongPressedName(string name, string typed) {
      int j = 0;
      for(int i = 0; i < typed.size(); i++){
         if(j < name.size() && name[j] == typed[i])j++;
      }
      return j == name.size();
   }
};
main(){
   Solution ob;
   string res = ob.isLongPressedName("Amit", "Ammittt") ? "true" :
   "false";
      cout << res;
}

输入

"Amit"
"Ammittt"

输出

true

更新于:2020 年 4 月 28 日

247 次浏览

职业启航

完成课程获得认证

开始
广告