Skip to content

Instantly share code, notes, and snippets.

@julsdelatierra
Last active September 19, 2017 02:56
Show Gist options
  • Save julsdelatierra/b7745e00985456a2e8ba15d60d19a33f to your computer and use it in GitHub Desktop.
Save julsdelatierra/b7745e00985456a2e8ba15d60d19a33f to your computer and use it in GitHub Desktop.

1. SQL

CREATE DATABASE family;
USE family;
CREATE TABLE rels (padre INT, hijo INT);
INSERT INTO rels (padre, hijo) VALUES (20, 18);
INSERT INTO rels (padre, hijo) VALUES (12, 6);
INSERT INTO rels (padre, hijo) VALUES (18, 4);
INSERT INTO rels (padre, hijo) VALUES (34, 20);
INSERT INTO rels (padre, hijo) VALUES (18, 5);
INSERT INTO rels (padre, hijo) VALUES (18, 6);
INSERT INTO rels (padre, hijo) VALUES (18, 7);

SELECT b.padre AS abuelo, a.hijo AS nieto
FROM rels AS a
LEFT OUTER JOIN rels AS b
ON a.padre = b.hijo
WHERE b.padre IS NOT NULL
ORDER BY abuelo;

2. Sparse strings

var sparse = function(content) {
  var samples = content.split('\n');
  var strings = getStrings(samples);
  var queries = getQueries(samples);

  var occurrencies = {};

  queries.forEach(function(query) {
    occurrencies[query] = 0;

    strings.forEach(function(string) {
      if (string == query) occurrencies[query]++;
    });
  });

  return Object.values(occurrencies);
}

var getStrings = function(rows) {
  var stringsLength = getStringsLength(rows);
  return rows.splice(0, stringsLength);
}

var getStringsLength = function(rows) {
  return parseInt(rows.splice(0, 1)[0]);
}

var getQueries = function(rows) {
  var queriesLength = getQueriesLength(rows);
  return rows.splice(0, queriesLength);
}

var getQueriesLength = function(rows) {
  return parseInt(rows.splice(0, 1)[0]);
}

var text = '4\naba\nbaba\naba\nxzxb\n3\naba\nxzxb\nab';
console.info(sparse(text));

3. Super digit

var super_digit = function(number) {
  number = new String(number)

  var digits = number.split('');

  if (digits.length > 1) {
    var sum = 0;
    digits.forEach(function(digit) {
      sum += parseInt(digit);
    });
    return super_digit(sum);
  } else {
    return parseInt(number);
  }
}

var number = 9875;
console.info(super_digit(number));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment