6 kyu

Are they the "same"?

11,670 of 108,697g964

Description:

Given two arrays a and b write a function comp(a, b) (orcompSame(a, b)) that checks whether the two arrays have the "same" elements, with the same multiplicities (the multiplicity of a member is the number of times it appears). "Same" means, here, that the elements in b are the elements in a squared, regardless of the order.

Examples

Valid arrays
a = [121, 144, 19, 161, 19, 144, 19, 11]  
b = [121, 14641, 20736, 361, 25921, 361, 20736, 361]

comp(a, b) returns true because in b 121 is the square of 11, 14641 is the square of 121, 20736 the square of 144, 361 the square of 19, 25921 the square of 161, and so on. It gets obvious if we write b's elements in terms of squares:

a = [121, 144, 19, 161, 19, 144, 19, 11] 
b = [11*11, 121*121, 144*144, 19*19, 161*161, 19*19, 144*144, 19*19]
Invalid arrays

If, for example, we change the first number to something else, comp is not returning true anymore:

a = [121, 144, 19, 161, 19, 144, 19, 11]  
b = [132, 14641, 20736, 361, 25921, 361, 20736, 361]

comp(a,b) returns false because in b 132 is not the square of any number of a.

a = [121, 144, 19, 161, 19, 144, 19, 11]  
b = [121, 14641, 20736, 36100, 25921, 361, 20736, 361]

comp(a,b) returns false because in b 36100 is not the square of any number of a.

Remarks

  • a or b might be [] or {} (all languages except R, Shell).
  • a or b might be nil or null or None or nothing (except in C++, COBOL, Crystal, D, Dart, Elixir, Fortran, F#, Haskell, Nim, OCaml, Pascal, Perl, PowerShell, Prolog, PureScript, R, Racket, Rust, Shell, Swift).

If a or b are nil (or null or None, depending on the language), the problem doesn't make sense so return false.

Fundamentals

Stats:

CreatedMar 14, 2015
PublishedMar 14, 2015
Warriors Trained298133
Total Skips60552
Total Code Submissions2009884
Total Times Completed108697
Ruby Completions3766
C# Completions6247
Python Completions34720
Java Completions11670
Clojure Completions550
Haskell Completions1399
JavaScript Completions32457
CoffeeScript Completions53
Elixir Completions558
TypeScript Completions2677
C++ Completions4684
PHP Completions2268
Crystal Completions51
F# Completions183
C Completions2623
Rust Completions1721
Swift Completions891
R Completions252
Scala Completions762
Shell Completions132
OCaml Completions92
Julia Completions116
Kotlin Completions1028
PowerShell Completions79
Go Completions1442
Nim Completions37
PureScript Completions35
NASM Completions20
Racket Completions65
Groovy Completions45
Prolog Completions35
CFML Completions21
Fortran Completions21
Haxe Completions12
Dart Completions625
Pascal Completions22
Lua Completions96
Perl Completions46
D Completions17
Elm Completions13
COBOL Completions6
Erlang Completions19
Total Stars4024
% of votes with a positive feedback rating76% of 10604
Total "Very Satisfied" Votes6796
Total "Somewhat Satisfied" Votes2573
Total "Not Satisfied" Votes1235
Ad
Contributors
  • g964 Avatar
  • jhoffner Avatar
  • Azuaron Avatar
  • bkaes Avatar
  • GiacomoSorbi Avatar
  • donaldsebleung Avatar
  • Chrono79 Avatar
  • kazk Avatar
  • JohanWiltink Avatar
  • Firefly2002 Avatar
  • Voile Avatar
  • kdmatrosov Avatar
  • danmbyrd Avatar
  • bdw429s Avatar
  • monadius Avatar
  • hobovsky Avatar
  • uniapi Avatar
  • trashy_incel Avatar
  • user8436785 Avatar
  • akar-0 Avatar
  • Just4FunCoder Avatar
Ad