アナグラム判定メゾット (ある企業の採用面接で出たらしい)
久しぶりの投稿になりました。
勉強を怠っていたわけではありません笑
アナグラム判定メゾットはある企業の採用面接で出た試験らしいです。
自分なりに考えてみました。
(面接官の前で、いきなりホワイトボードに書くのはテンパってできたかな笑)
アナグラム判定メゾット
アナグラムとは??
ある文字列の文字位置を入れ替えることで、違う文字列にするというものです。(hatena → netaha)
判定するために
- 全く同じ文字列でないこと
- 同じ文字を同じ文字数分使っていること
# anagram判定アルゴリズム def anagram(str1,str2) array1 = str1.split("") array2 = str2.split("") array = [] array1.each do |s1| array2.each.with_index do |s2,i| if s1 == s2 array << s1 array2.delete_at(i) next #スキップする end end end # 同じ文字を同じ文字数分使っているか?且つ同じ文字列出ないか? (array.size == str1.size) && (str1 != str2) end
ちょっとわかりずらいですね。。。でも一応機能はしています。
ネットで調べたら、こんなに簡単にできるようです。
def anagram(str1, str2) (str1.chars.sort == str2.chars.sort) && (str1 != str2) end
面接ではいきなりこんな問題を出されたりします。
1から10書けることというより、課題設定し、その課題をクリアできる方法を思考できるかを見ているようです。
子テーブルのレコードにカスタムバリデーションで存在検証
したかったこと
親レコードと同時にネストしたフォーム(fields_for)で作成した子レコードに最低一つは作成されていることを判定をするカスタムバリテーションを作成した。(質問を作成した時に最低でも一つはジャンルを選択してほしい)
rubyのNEWsAPIの実装
またまた企業からいただいた課題を実装しましたので、備忘録として残します。
【課題】
ニュース系のAPIを実装し、リストを表示する。
https://newsapi.org/
世界中のニュースソースを集めて、データ提供をしてくれるAPIです。
ユーザー登録をして、APIkeyをゲットできます。
ニュースのソースや、ジャンル、国など指定できます。
routes.rb
get '/tweets/moment/:genre', to: "tweets#moment" #ここでクライアントのリクエストによって、tweetsコントローラーのmomentアクションでparamsによってジャンルを取得可能にしました。 resources :tweets do collection do get :search,:moment #tweetsコントローラーのmomentアクションの定義 end end続きを読む
ruby on rails ツイッタートレンドの時間毎の表示の実装(企業からいただいた課題)
本日訪問した企業より、スクールで作った最終作品に対して、追加課題をいただきました。
実装を行いましたので、備忘録として残します。