C语言 | Leetcode C语言题解之第392题判定子序列

打印 上一主题 下一主题

主题 653|帖子 653|积分 1961

题目:

题解:
  1. bool isSubsequence(char* s, char* t) {
  2.     int n = strlen(s), m = strlen(t);
  3.     int f[m + 1][26];
  4.     memset(f, 0, sizeof(f));
  5.     for (int i = 0; i < 26; i++) {
  6.         f[m][i] = m;
  7.     }
  8.     for (int i = m - 1; i >= 0; i--) {
  9.         for (int j = 0; j < 26; j++) {
  10.             if (t[i] == j + 'a')
  11.                 f[i][j] = i;
  12.             else
  13.                 f[i][j] = f[i + 1][j];
  14.         }
  15.     }
  16.     int add = 0;
  17.     for (int i = 0; i < n; i++) {
  18.         if (f[add][s[i] - 'a'] == m) {
  19.             return false;
  20.         }
  21.         add = f[add][s[i] - 'a'] + 1;
  22.     }
  23.     return true;
  24. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表