LeetCode第1371题:每个元音包含偶数次的最长子字符串(中等)

  • 题目:给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 ‘a’,‘e’,‘i’,‘o’,‘u’ ,在子字符串中都恰好出现了偶数次。
  • 解题思路:创建一个二维数组,记录每个位置的元音的数量。有一个变量名搞错了,导致改了半天,最终还是超出了时间限制。
class Solution {public int findTheLongestSubstring(String s) {int len = s.length();int[][] time = new int[len+1][5];int ans = 0;for(int i=1;i<len+1;i++){char temp = s.charAt(i-1);switch(temp){case 'a':time[i][0] = time[i-1][0]+1;time[i][1] = time[i-1][1];time[i][2] = time[i-1][2];time[i][3] = time[i-1][3];time[i][4] = time[i-1][4];break;case 'e':time[i][1] = time[i-1][1]+1;time[i][0] = time[i-1][0];time[i][2] = time[i-1][2];time[i][3] = time[i-1][3];time[i][4] = time[i-1][4];break;case 'i':time[i][2] = time[i-1][2]+1;time[i][0] = time[i-1][0];time[i][1] = time[i-1][1];time[i][3] = time[i-1][3];time[i][4] = time[i-1][4];break;case 'o':time[i][3] = time[i-1][3]+1;time[i][0] = time[i-1][0];time[i][1] = time[i-1][1];time[i][2] = time[i-1][2];time[i][4] = time[i-1][4];break;case 'u':time[i][4] = time[i-1][4]+1;time[i][0] = time[i-1][0];time[i][1] = time[i-1][1];time[i][2] = time[i-1][2];time[i][3] = time[i-1][3];break;default:time[i][0] = time[i-1][0];time[i][1] = time[i-1][1];time[i][2] = time[i-1][2];time[i][3] = time[i-1][3];time[i][4] = time[i-1][4];break;}}for(int left=0;left<len+1;left++){for(int right=left+1;right<len+1;right++){int j=0;while(j<5){if((time[right][j]-time[left][j])%2==0){j++;}else{break;}}if(j==5) ans = Math.max(ans,right-left);}}return ans;}
}

  • 题解做法:前缀+压缩状态
class Solution {public int findTheLongestSubstring(String s) {int n = s.length();int[] pos = new int[1 << 5];Arrays.fill(pos, -1);int ans = 0, status = 0;pos[0] = 0;for (int i = 0; i < n; i++) {char ch = s.charAt(i);if (ch == 'a') {status ^= (1 << 0);} else if (ch == 'e') {status ^= (1 << 1);} else if (ch == 'i') {status ^= (1 << 2);} else if (ch == 'o') {status ^= (1 << 3);} else if (ch == 'u') {status ^= (1 << 4);}if (pos[status] >= 0) {ans = Math.max(ans, i + 1 - pos[status]);} else {pos[status] = i + 1;}}return ans;}
}作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/find-the-longest-substring-containing-vowels-in-even-counts/solution/mei-ge-yuan-yin-bao-han-ou-shu-ci-de-zui-chang-z-2/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

LeetCode第1371题:每个元音包含偶数次的最长子字符串(中等)相关推荐

  1. 每个元音包含偶数次的最长子字符串

    每个元音包含偶数次的最长子字符串 ❤️ ❤️ 中等 题目介绍 给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 'a','e','i','o','u' ,在子字符串中都 ...

  2. leetcode 1371.每个元音包含偶数次的最长子字符串(find the longest substring containing vowels in even counts)C语言

    leetcode 1371.每个元音包含偶数次的最长子字符串(find the longest substring containing vowels in even counts)C语言 1.des ...

  3. leetcode-每日打卡-1371. 每个元音包含偶数次的最长子字符串

    1371. 每个元音包含偶数次的最长子字符串 难度:中等 给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 'a','e','i','o','u' ,在子字符串中都恰好 ...

  4. Leetcode--1371. 每个元音包含偶数次的最长子字符串(Java)

    给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 'a','e','i','o','u' ,在子字符串中都恰好出现了偶数次. 示例 1: 输入:s = "el ...

  5. 每个元音包含偶数次的最长子字符串——打死我也想不到的代码

    这道题目,官方给出的题解,打死我也想不到.原题目地址 给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 'a','e','i','o','u' ,在子字符串中都恰好出现 ...

  6. LeetCode 1371. 每个元音包含偶数次的最长子字符串

    https://leetcode-cn.com/problems/find-the-longest-substring-containing-vowels-in-even-counts/ 这道题一开始 ...

  7. 1371. 每个元音包含偶数次的最长子字符串

    题解:https://leetcode-cn.com/problems/find-the-longest-substring-containing-vowels-in-even-counts/solu ...

  8. [leetcode]5337. 每个元音包含偶数次的最长子字符串

    前缀和,下次记住前缀和,从1开始存,cnt[0] 存0 class Solution {public:int findTheLongestSubstring(string s) {int len = ...

  9. leetcode: 每个元音包含偶数次的最长字符串(前缀和 + 状态压缩(位运算、hash优化))*

    题目:给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 'a','e','i','o','u' ,在子字符串中都恰好出现了偶数次. PS: 1 <= s.leng ...

最新文章

  1. relative会脱离文档流吗_脱离华为之后,高通伸来援手,荣耀40会搭载骁龙888吗?...
  2. hello my first blog
  3. jupyter怎么调字体_夏天冰箱调到几档最好 冷藏调多少度合适
  4. Unity Inspector 给组件自动关联引用
  5. Facebook的智能音箱跳,票,了
  6. 力扣题目——143. 重排链表
  7. Go操作MySql Memache Mongodb
  8. AcWing 4. 多重背包问题(多重背包 朴素版)
  9. SpringBoot配置参数绑定@ConfigurationProperties@Value
  10. 应用安全-CMF/CMS漏洞整理
  11. Markdown语法 (中文版)
  12. 最小二乘法 c 语言程序,最小二乘法的嵌入式C语言实现
  13. python — 二手房
  14. App项目实战之路(三):原型篇
  15. 国际信用卡如何支付(流程演示图)
  16. oracle ora 3136,一次ORA-3136的处置
  17. 程序员生涯之我见 找到自己的兴趣所在
  18. 必应搜索引擎怎么了?
  19. 苹果电脑查看已经连上的WiFi密码(亲测可用)
  20. 用户界面测试(来源于百度百科)

热门文章

  1. 点击按钮背景变灰色,松开恢复原来色
  2. Typecho 博客主题 Terse
  3. 临床预测模型评鉴(PMID: 33303841)
  4. Face Anti-Spoofing FAS 综述
  5. HTML抓取不到,抓取不到html,curl和file_get_contents都抓不到,但是页面可以直接打开。...
  6. ARM中汇编程序实例小笔记
  7. 抖音seo新玩法源码+抖音小程序源码系统如何搭建
  8. 英语四六级翻译13:丝绸之路
  9. 钢丝捻线机行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  10. [原创] wildfly 部署应用时出错原因调查