6 kyu

Are they the "same"?

34,545 of 108,275g964

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 Trained297386
Total Skips60447
Total Code Submissions2005611
Total Times Completed108275
Ruby Completions3762
C# Completions6227
Python Completions34545
Java Completions11637
Clojure Completions549
Haskell Completions1399
JavaScript Completions32340
CoffeeScript Completions53
Elixir Completions556
TypeScript Completions2664
C++ Completions4665
PHP Completions2264
Crystal Completions51
F# Completions183
C Completions2616
Rust Completions1710
Swift Completions888
R Completions251
Scala Completions762
Shell Completions130
OCaml Completions91
Julia Completions116
Kotlin Completions1026
PowerShell Completions78
Go Completions1437
Nim Completions37
PureScript Completions35
NASM Completions20
Racket Completions65
Groovy Completions45
Prolog Completions35
CFML Completions21
Fortran Completions21
Haxe Completions12
Dart Completions617
Pascal Completions22
Lua Completions94
Perl Completions46
D Completions17
Elm Completions13
COBOL Completions6
Erlang Completions19
Total Stars4012
% of votes with a positive feedback rating76% of 10590
Total "Very Satisfied" Votes6786
Total "Somewhat Satisfied" Votes2570
Total "Not Satisfied" Votes1234
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