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]);
})