myutils 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ require 'myutils/strutils'
2
+ require 'myutils/regutils'
@@ -0,0 +1,20 @@
1
+ module RegUtils
2
+
3
+ def self.reg_iter text, s, e
4
+ rstart = 0; rend = 0
5
+ rst_arry = []
6
+ while true
7
+ rstart = text.index(s, rend)
8
+ break if rstart == nil
9
+
10
+ rend = text.index(e, rstart)
11
+ len = text.match(e, rstart)[0].length
12
+ rend = rend + len - 1
13
+ rst_arry.push(text[rstart..rend])
14
+ rstart = rend
15
+ end
16
+
17
+ rst_arry
18
+ end
19
+
20
+ end
@@ -0,0 +1,27 @@
1
+ module StrUtils
2
+ def self.strcmp(a, b)
3
+ return 0 if a == nil || b == nil
4
+ a = a.strip; b = b.strip
5
+
6
+ len = a.length > b.length ? a.length : b.length
7
+
8
+ dp = Array.new(a.length) {Array.new(b.length, 0)}
9
+ for i in 0..a.length-1
10
+ for j in 0..b.length-1
11
+ (dp[i][j] = (a[0] == b[0]? 1 : 0); next) if i == 0 and j == 0
12
+
13
+ (dp[i][j] = (dp[i][j-1] == 1 || a[0] == b[j]? 1 : 0); next) if i == 0
14
+
15
+ (dp[i][j] = (dp[i-1][j] == 1 || a[i] == b[0]? 1 : 0); next) if j == 0
16
+
17
+ dp[i][j] = (dp[i-1][j-1] + (a[i] == b[j]? 1 : 0))
18
+
19
+ dp[i][j] = dp[i-1][j] if dp[i][j] < dp[i-1][j]
20
+
21
+ dp[i][j] = dp[i][j-1] if dp[i][j] < dp[i][j-1]
22
+ end
23
+ end
24
+
25
+ return dp[a.length-1][b.length-1] / (len * 1.0)
26
+ end
27
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: myutils
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - fzuwwl
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2013-01-04 00:00:00 +08:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: Utils for my own use.
22
+ email: fzuwwl@gmail.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - lib/myutils.rb
31
+ - lib/myutils/regutils.rb
32
+ - lib/myutils/strutils.rb
33
+ has_rdoc: true
34
+ homepage: http://rubygems.org/gems/myutils
35
+ licenses: []
36
+
37
+ post_install_message:
38
+ rdoc_options: []
39
+
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ segments:
48
+ - 0
49
+ version: "0"
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ segments:
56
+ - 0
57
+ version: "0"
58
+ requirements: []
59
+
60
+ rubyforge_project:
61
+ rubygems_version: 1.3.7.1
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: Utils for my own use.
65
+ test_files: []
66
+