From f0bfce2ee639d0a0b0e6c619e5c49586d708ce0e Mon Sep 17 00:00:00 2001 From: li-chx Date: Thu, 23 Oct 2025 15:26:58 +0800 Subject: [PATCH] =?UTF-8?q?3461.=20=E5=88=A4=E6=96=AD=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E5=90=8E=E5=AD=97=E7=AC=A6=E4=B8=B2=E4=B8=AD=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E5=AD=97=E6=98=AF=E5=90=A6=E7=9B=B8=E7=AD=89=20I?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.rs | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/src/main.rs b/src/main.rs index e4ddebd..847a055 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,29 +1,23 @@ -use std::cmp::{max, min}; mod arr; struct Solution {} impl Solution { - pub fn max_frequency(nums: Vec, k: i32, num_operations: i32) -> i32 { - let mut ans = 0; - let mut arr = vec![0; 1_000_00 + 10]; - let mut arr2 = vec![0; 1_000_00 + 10]; - for &num in nums.iter() { - let l = max(num - k, 0); - let r = min(1_000_00 + 1, num + k); - arr[l as usize] += 1; - arr[r as usize + 1] -= 1; - arr2[num as usize] += 1; + pub fn has_same_digits(s: String) -> bool { + let n = s.len() - 2; + let s = s.chars().collect::>(); + let (mut p1,mut p2) = (0,0); + let mut base = 1_u128; + let mut k = 0; + for i in 0..=n { + p1 += base * (s[i].to_digit(10).unwrap() as u128); + p2 += base * (s[i+1].to_digit(10).unwrap() as u128); + base = base * (n as u128 - k) / (k+1); + k+=1; } - let mut base = 0; - for i in 0..arr.len() { - base += arr[i]; - let local_ans = min(arr2[i] + num_operations, base); - ans = max(ans, local_ans); - } - ans + p1 % 10 == p2 % 10 } } fn main() { - println!("{:?}", Solution::max_frequency(vec![1, 1, 1, 4, 5], 1, 2)); + println!("{:?}", Solution::has_same_digits("50656587913386788475086249545073".to_string())); }