Alexxik

Untitled

Mar 19th, 2024
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.11 KB | None | 0 0
  1. func commonNumbersOnPrefixes(_ a: [Int], _ b: [Int]) -> [Int] {
  2.    
  3.     var result = Array.init(repeating: 0, count: a.count)
  4.    
  5.     var setA = Set<Int>()
  6.     var setB = Set<Int>()
  7.    
  8.     var count = 0
  9.    
  10.     for i in 0..<a.count {
  11.        
  12.         // реашвем проблему с тем когда равные элементы
  13.         if a[i] == b[i] && !setA.contains(a[i]) && !setB.contains(b[i]) {
  14.             count += 1
  15.         }
  16.        
  17.         // есть в другом и нет в нашем
  18.         // без проверки на нахождение в нашем каждый раз будет добавлять даже если уже посчитал этот общий элемент
  19.         if setB.contains(a[i]) && !setA.contains(a[i]){
  20.             count += 1
  21.         }
  22.        
  23.         if setA.contains(b[i]) && !setB.contains(b[i]){
  24.             count += 1
  25.         }
  26.        
  27.         setA.insert(a[i])
  28.         setB.insert(b[i])
  29.         result[i] = count
  30.     }
  31.     return result
  32. }
  33.  
  34. let A = [1,2,1,4]
  35. let B = [4,0,1,3]
  36.  
  37. commonNumbersOnPrefixes(A, B) // [0, 0, 1, 2]
Add Comment
Please, Sign In to add comment