Problem C. T9 Spelling

Google Code Jam

by mowglisanu

HTML

<input type=file>

JavaScript

$('input').change(function(){
	var f = new FileReader();
  f.onload = function(){
  	var data = this.result.replace(/\r\n|\n\r|\r/g, '\n');
    var lines = data.split('\n');
    var count = +lines[0];
    result = '';
    var keypad = [
    	' ',
      '',
      'abc',
      'def',
      'ghi',
      'jkl',
      'mno',
      'pqrs',
      'tuv',
      'wxyz'
    ];
    
    for (var x = 1; x <= count; x++){
    	var letters = lines[x].split('');
      var previous = '';
      result += 'Case #'+x+': ';
      letters.forEach(function(current){
      	var key = keypad.findIndex(function(key){
        	return key.indexOf(current) > -1;
        });
      	if (previous === key){
        	result += ' ';
        }
        result += key.toString().repeat(keypad[key].indexOf(current)+1);
        previous = key;
      })
      result += '\n';
    }
    var blob = new Blob([result], {type:'binary/octet-stream'});
    var bloburl = URL.createObjectURL(blob);
    window.location.href = bloburl;
  };
  f.readAsText(this.files[0]);
})