開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
初めてのコンピュータサイエンス(Jennifer Campbell、Paul Gries、Jason Montojo、Greg Wilson(著)長尾 高弘(翻訳))の12章(各種ツール)、12.7(練習問題)、12-20.をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
12.7(練習問題)、12-20.
コード
sample.dart
import 'dart:html'; void main() { InputElement run = querySelector('#run_dart'); InputElement clear = querySelector('#clear'); Element pre = querySelector('#pre0'); run.onClick.listen((MouseEvent event){ pre.text = '${window.navigator.userAgent}\n'; pre.text += testCases.map( (var s) => findButNotAfter(s[0], s[1], s[2]) == s[3]).toString(); }); clear.onClick.listen((MouseEvent event) => pre.text = ''); } int findButNotAfter(String source, String prefix, String pattern){ if(pattern == '' || prefix == ''){ return null; } int start = 0; int result = source.indexOf(pattern); while(result != -1){ if(source.substring(result - prefix.length, result) != prefix){ break; } start = result + 1; result = source.indexOf(pattern, start); } if(result == -1){ return null; } return result; } var testCases = [['', '', '', null], ['', '', 'a', null], ['', 'a', '', null], ['a', '', '', null], ['', 'a', 'b', null], ['a', '', 'b', null], ['a', 'a', '', null], ['abcd', 'a', 'bc', null], ['abcdcd', 'ab', 'cd', 4], ['abxcdcd', 'ab', 'cd', 3]];
0 コメント:
コメントを投稿