2012-05-01から1ヶ月間の記事一覧

ScalaでVerticalCode

とりあえず作った import scala.collection.mutable.BitSet class VerticalCode(nums:Array[Int]) { val length = 32 var data = Array[BitSet]() this.insertNums(nums) def insertNums(nums:Array[Int]) = { for (i <- 0 until nums.length) { val diff = …

Scalaで範囲付き二分探索

これは文字列の探索。dankogai氏のblogのjsを見ていじった。 object TryBinarySearch { def main(args:Array[String]) { var strs = Array[String]("a", "ab", "abc", "abcd", "cc", "dd", "ee") // sort済 val (found, head, tail) = binarySearch(strs, "a…

scalaのBitSet

Bit配列を持ちたいので調べた http://www.scala-lang.org/api/current/scala/collection/BitSet.html object TryBitSet { import scala.collection.mutable.BitSet def main(args:Array[String]) { var bits = new BitSet() // empty状態 // bits += n で n…

ScalaでLCP

LCPを用いて探索するようにしたいのでその関数をつくる object LCPTest { def main(args: Array[String]) { val str = "orangeorange" val c = lcp(str, 0, 6) // 6 } def lcp(str:String, l:Int, r:Int):Int = { var d:Int = 0 while(str(l+d) == str(r+d))…

scalaのArrayStack

複数の検索結果を返すようにしたいので返すデータ型にArrayStackを使う。 object ArrayStackTest { import scala.collection.mutable.ArrayStack def main(args: Array[String]) { var a = new ArrayStack[Int] a.push(1) a.push(2) for (n <- a) println(n.…

scalaのsuffixArray

とりあえず作ったが、問題点が幾つかある。 class SuffixArray(str:String) { val sortedArray = this.parse(str) import scala.collection.mutable.HashMap def parse(str:String) : Array[HashMap[String, Any]] = { var strArray = new Array[HashMap[Str…

vimのsyntax追加

~/.vim/syntax/hoge.vim を追加の後、 if exists("did_load_filetypes") finish endif augroup filetypedetect au! BufRead,BufNewFile *.hoge setfiletype hoge augroup END ~/.vim/filetype.vim (filetypeはそのままfiletype。共通で使う) という名前で入…

Scalaで文字列配列の二分探索

def search(sortedArray:Array[Any], target:String): Int = { var upper = sortedArray.length - 1 var lower = 0 while (upper >= lower) { var i = lower + (upper - lower) / 2 if (sortedArray(i) == target) return i if (sortedArray(i) < target) lo…

ScalaでAny型のキャスト

val map = Map[String, Int] は val map = Map[String, Any] にして、様々な型(Anyのサブクラス)を受け付けられる比較の際などは val a = Map[String, Int]("key" -> 100) val b = Map[String, Any]("key" -> 1000) val t = a("key") < b("key").asInstanceO…