Sep. 26th, 2022

amarao: (Default)
... Это когда человек всё время говорит εγω αυτο. Такое часто от детей услышать можно.

СЯУ

Sep. 26th, 2022 07:04 pm
amarao: (Default)
С интересом узнал, что vrf в линуксе - это не концепция из ip route, а устройство, одного класса с бриджом. Чувствую что они низводят L3 до L2.
amarao: (Default)
Один из нескольких разов, когда rust взрывает мозг и офигенен.

Задача:

Given a pattern and a string s, find if s follows the same pattern.

Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in s.

 

Example 1:

Input: pattern = "abba", s = "dog cat cat dog"
Output: true

Example 2:

Input: pattern = "abba", s = "dog cat cat fish"
Output: false

Example 3:

Input: pattern = "aaaa", s = "dog cat cat dog"
Output: false

Constraints:

  • 1 <= pattern.length <= 300
  • pattern contains only lower-case English letters.
  • 1 <= s.length <= 3000
  • s contains only lowercase English letters and spaces ' '.
  • s does not contain any leading or trailing spaces.
  • All the words in s are separated by a single space.

Решение:

impl Solution {
fn abstract_list<T, G>(input: T) -> Vec<usize>
where
T: Iterator<Item = G>,
G: std::hash::Hash + std::cmp::Eq,
{
let mut dict = HashMap::new();
let mut output = Vec::new();
for elem in input {
let id = dict.len();
output.push(*dict.entry(elem).or_insert(id));
}
output
}
pub fn word_pattern(pattern: String, s: String) -> bool {
Self::abstract_list(pattern.chars()) == Self::abstract_list(s.split_whitespace())
}
}

Я чертовски горжусь
abstract_list. Это функция, которую я осмысленно написал
generic'ом, причём с generic'ом для Item.


Profile

amarao: (Default)
amarao

September 2025

S M T W T F S
 12345 6
78 910111213
14151617 181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 23rd, 2025 01:16 am
Powered by Dreamwidth Studios