给定一个字符串,请返回满足以下条件的最长字符串的长度:“a”、"b"、“c”、“x”、"y"、“z”在字符串中都恰好出现了偶数次(0也是偶数)-笔试面试资料

这是qklbishe.com第5427 篇笔试面试资料
提供答案分析,通过本文《给定一个字符串,请返回满足以下条件的最长字符串的长度:“a”、"b"、“c”、“x”、"y"、“z”在字符串中都恰好出现了偶数次(0也是偶数)-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

给定一个字符串,请返回满足以下条件的最长字符串的长度:“a”、"b"、“c”、“x”、"y"、“z”在字符串中都恰好出现了偶数次(0也是偶数)
给定一个字符串,请返回满足以下条件的最长字符串的长度:“a”、"b"、“c”、“x”、"y"、“z”在字符串中都恰好出现了偶数次(0也是偶数) codeTcy
leetcode 1371.状态压缩+哈希表。
import java.util.*; public class Main{     public static void main(String[] args) {         // write your code here         Scanner scanner = new Scanner(System.in);         String next = scanner.next();         System.out.println(findTheLongestSubstring(next));      }      private static int findTheLongestSubstring(String s) {         Map<Integer, Integer> map = new HashMap<>();          int state = 0;         int maxlen = 0;          // 初始化         map.put(0, -1);          // a b c x y z 分别在第123456个bit,来表示出现次数的奇偶性         for (int i = 0; i < s.length(); i++) {             if (s.charAt(i) == 'a') state ^= 0x000001;             if (s.charAt(i) == 'b') state ^= 0x000010;             if (s.charAt(i) == 'c') state ^= 0x000100;             if (s.charAt(i) == 'x') state ^= 0x001000;             if (s.charAt(i) == 'y') state ^= 0x010000;             if (s.charAt(i) == 'z') state ^= 0x100000;             if (map.containsKey(state)) {                 maxlen = Math.max(maxlen, i - map.get(state));             } else {                 map.put(state, i);             }         }         return maxlen;     } }

今天 14:17:36 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 给定一个字符串,请返回满足以下条件的最长字符串的长度:“a”、"b"、“c”、“x”、"y"、“z”在字符串中都恰好出现了偶数次(0也是偶数)-笔试面试资料

提供最优质的资源集合

立即查看 了解详情