{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ ":palindrome?" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class String\n", " def palindrome?\n", " self.reverse == self\n", " end\n", "end" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "false" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"happy\".palindrome?" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"abbacabba\".palindrome?" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ ":to_digits" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class Integer\n", " def to_digits(base=10)\n", " self.to_s(base).split('').map {|d| d.to_i}\n", " end\n", "end " ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1, 0, 0, 0, 1]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "17.to_digits(2)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[0, 1, 3, 5, 7, 9, 33, 99, 313, 585, 717]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(0..10**3).select {|i| i.to_s.palindrome? && i.to_s(2).palindrome?}" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[0, 1, 3, 5, 7, 9, 33, 99, 313, 585, 717, 7447, 9009, 15351, 32223, 39993, 53235, 53835, 73737, 585585]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(0..10**6).select {|i| i.to_s.palindrome? && i.to_s(2).palindrome?}" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "872187" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(0..10**6).select {|i| i.to_s.palindrome? && i.to_s(2).palindrome?}.sum" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.4.0", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": ".rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.4.0" } }, "nbformat": 4, "nbformat_minor": 0 }