Data update
This commit is contained in:
parent
4d5544505c
commit
4924dd0264
3073 changed files with 55820 additions and 4408 deletions
6
Task/String-matching/ArkScript/string-matching.ark
Normal file
6
Task/String-matching/ArkScript/string-matching.ark
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
(assert (= 0 (string:find "abcd" "ab")) "abcd starts with ab")
|
||||
(assert (= 6 (string:find "hello world" "world")) "world is located at 6")
|
||||
(assert (= -1 (string:find "abcd" "zn")) "abcd does not contain zn")
|
||||
(assert (= -1 (string:find "abab" "bb")) "abab does not contain bb")
|
||||
(assert (= 0 (string:find "abab" "ab")) "abab contains ab")
|
||||
(assert (= 2 (string:find "abab" "ab" 1)) "starting lookup at index 1, we found ab at position 2")
|
||||
17
Task/String-matching/DuckDB/string-matching.duckdb
Normal file
17
Task/String-matching/DuckDB/string-matching.duckdb
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# Return a list of the indices of all occurrences (including overlapping occurrences)
|
||||
create or replace function string_positions(haystack, needle) as (
|
||||
WITH RECURSIVE etc AS (
|
||||
SELECT
|
||||
position(needle IN haystack) AS start_pos,
|
||||
0 as s
|
||||
UNION ALL
|
||||
SELECT
|
||||
position(needle IN substr(haystack, start_pos + 1)) + start_pos AS start_pos,
|
||||
start_pos as s
|
||||
FROM etc
|
||||
WHERE start_pos != s
|
||||
)
|
||||
SELECT coalesce(array_agg(start_pos order by start_pos),[]::BIGINT[])
|
||||
FROM etc
|
||||
WHERE start_pos > 0 and s != start_pos
|
||||
);
|
||||
14
Task/String-matching/R/string-matching.r
Normal file
14
Task/String-matching/R/string-matching.r
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
startsWith("foobar", "foo")
|
||||
startsWith("barbaz", "bax")
|
||||
grepl("bar", "foobarqux") #Note order of arguments isn't always the same
|
||||
grepl("baz", "foobarqux")
|
||||
endsWith("foobar", "bar")
|
||||
endsWith("foobar", "baz")
|
||||
|
||||
regexpr("bar", "barbazbarbax") #Only returns position of first match
|
||||
|
||||
regexpr("foo", "barbazbarbax") #Returns -1 if no match exists
|
||||
|
||||
gregexpr("bar", "barbazbarbax") #Returns positions of all matches
|
||||
|
||||
gregexpr("foo", "barbazbarbax") #Same output as regexpr() if no match, but as a length-1 list rather than a vector
|
||||
Loading…
Add table
Add a link
Reference in a new issue