Cố Trường Ca
Senior Member
đang feed mà cứ hỏi hỏi ai trả lời chosweep line là sao hả bác, các bước nó ntn.
đang feed mà cứ hỏi hỏi ai trả lời chosweep line là sao hả bác, các bước nó ntn.
sweep line là sao hả bác, các bước nó ntn.
Feed hơi ngu nhưng vẫn đc thêm ít rank, đường lên bảo vệ hơi chông gaiđang feed mà cứ hỏi hỏi ai trả lời cho![]()

use std::collections::*;
impl Solution {
pub fn find_the_longest_substring(s: String) -> i32 {
let (bytes, n) = (s.as_bytes(), s.len());
let presence =
0u32 | 1u32 << b'a' - b'a' | 1u32 << b'e' - b'a' | 1u32 << b'i' - b'a' | 1u32 << b'o' - b'a' | 1u32 << b'u' - b'a';
let mut pref = vec![0u32; n];
pref[0] = 1u32 << (bytes[0] - b'a');
for i in 1..n {
pref[i] = (pref[i - 1] ^ (1u32 << bytes[i] - b'a')) & presence;
}
let mut result = 0;
let mut seen: HashMap<u32, usize> = HashMap::new();
for right in 0..n {
let bitset = pref[right];
if bitset == 0 {
result = result.max(right + 1);
} else if let Some(&left) = seen.get(&bitset) {
result = result.max(right - left);
}
seen.entry(bitset).or_insert(right);
}
result as i32
}
}
use std::collections::*;
impl Solution {
pub fn find_the_longest_substring(s: String) -> i32 {
let (bytes, n) = (s.as_bytes(), s.len());
let mut seen = vec![usize::MAX; 32];
seen[0] = 0;
let (mut bitset, mut result) = (0, 0);
for (right, bc) in bytes.iter().copied().enumerate() {
match bc {
b'a' => bitset ^= 1,
b'e' => bitset ^= 2,
b'i' => bitset ^= 4,
b'o' => bitset ^= 8,
b'u' => bitset ^= 16,
_ => ()
}
if bitset == 0 {
result = result.max(right + 1);
} else {
let left = seen[bitset];
if left != usize::MAX {
result = result.max(right + 1 - left);
}
}
if seen[bitset] == usize::MAX {
seen[bitset] = right + 1;
}
}
result as i32
}
}
e search r xong thấy nó cũng chỉ có brute force lần lượt từng khoảng sorted có giảm dc tí TC nào đâu, nên thắc mắccầm keyword đi search chứ![]()
2k dis 2k datmedium rating 2k mà AC cao thế, tận 7x%, copypasta à![]()
class Solution:
def findTheLongestSubstring(self, s: str) -> int:
xorMap = {}
xorMap[0] = -1
countMap = [0] * 5
res = 0
for i in range(len(s)):
if s[i]=='u':
countMap[0] = 1- countMap[0]
elif s[i]=='e':
countMap[1] = 1- countMap[1]
elif s[i]=='o':
countMap[2] = 1- countMap[2]
elif s[i]=='a':
countMap[3] = 1- countMap[3]
elif s[i]=='i':
countMap[4] = 1- countMap[4]
binary = ''.join(str(x) for x in countMap)
decimal = int(binary,2)
if decimal in xorMap:
res = max(res,i-xorMap[decimal])
else:
xorMap[decimal] = i
return res
public class Solution
{
public int FindTheLongestSubstring(string s)
{
Dictionary<char, int> map = new(5);
map['a'] = 0; map['e'] = 1; map['i'] = 2; map['o'] = 3; map['u'] = 4;
int[] prefix = new int[s.Length + 1];
for (int i = 1; i <= s.Length; i++)
{
int value = !IsVowel(s[i - 1]) ? 0 : 1 << map[s[i - 1]];
prefix[i] = prefix[i - 1] ^ value;
}
int result = 0;
Dictionary<int, int> dict = new();
for (int i = 0; i < prefix.Length; i++)
{
if (!dict.ContainsKey(prefix[i]))
{
dict[prefix[i]] = i;
continue;
}
result = Math.Max(i - dict[prefix[i]], result);
}
return result;
}
private bool IsVowel(char c)
{
return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
}
}
bài này giống 560, lại thêm cái trick dùng XOR nữa thì chả copypastamedium rating 2k mà AC cao thế, tận 7x%, copypasta à![]()

Check rating ở đâu thế bác.medium rating 2k mà AC cao thế, tận 7x%, copypasta à![]()
Check rating ở đâu thế bác.
Rating của một câu hỏi được tính dựa trên rating của người đã AC câu đó trong contest. Phần trăm AC trong contest khác với phần trăm AC ngoài contest nhiều lắm.2k dis 2k dat
MMR is just a numberRating của một câu hỏi được tính dựa trên rating của người đã AC câu đó trong contest. Phần trăm AC trong contest khác với phần trăm AC ngoài contest nhiều lắm.
Nay cuối tuần nghỉ ngơi đi mai fence, tuần rồi 2 bài contests chịu khó upsolve mấy câu chưa làm được đi.@freedom.9sao hôm nay ko có cơm![]()

Tuy không hiểu gì hết mà nghe nguy hiểm quáNay cuối tuần nghỉ ngơi đi mai fence, tuần rồi 2 bài contests chịu khó upsolve mấy câu chưa làm được đi.
Đang ngồi học rolling hash , KMP, Z Function![]()
@freedom.9 là ai, tôi đã bao giờ nghe tên anh ấy đâuTuy không hiểu gì hết mà nghe nguy hiểm quáĐúng là rồng trong loài người.![]()
Vài bữa nữa có Terminator được gửi về từ tương lai để bảo vệ @freedom.9![]()