diff options
| author | Mariano Spadaccini <spadacciniweb@gmail.com> | 2025-09-26 11:29:43 +0200 |
|---|---|---|
| committer | Mariano Spadaccini <spadacciniweb@gmail.com> | 2025-09-26 11:29:43 +0200 |
| commit | d7cb6491b13f524d20ef93629cac615fc6306ec6 (patch) | |
| tree | 9397e21a2494b6a663a1bc6711e0e50d92ea3d21 | |
| parent | cd6ceb5b39df5b963dba47c245b98d6c594a8131 (diff) | |
| download | perlweeklychallenge-club-d7cb6491b13f524d20ef93629cac615fc6306ec6.tar.gz perlweeklychallenge-club-d7cb6491b13f524d20ef93629cac615fc6306ec6.tar.bz2 perlweeklychallenge-club-d7cb6491b13f524d20ef93629cac615fc6306ec6.zip | |
PWC 340: add ch-2 in Go
| -rw-r--r-- | challenge-340/spadacciniweb/go/ch-2.go | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/challenge-340/spadacciniweb/go/ch-2.go b/challenge-340/spadacciniweb/go/ch-2.go new file mode 100644 index 0000000000..7399e9e417 --- /dev/null +++ b/challenge-340/spadacciniweb/go/ch-2.go @@ -0,0 +1,91 @@ +/* +# Task 2: Ascending Numbers +# Submitted by: Mohammad Sajid Anwar +# +# You are given a string, $str, is a list of tokens separated by a single space. Every token is either a positive number consisting of digits 0-9 with no leading zeros, or a word consisting of lowercase English letters. +# Write a script to check if all the numbers in the given string are strictly increasing from left to right. +# +# Example 1 +# Input: $str = "The cat has 3 kittens 7 toys 10 beds" +# Output: true +# +# Numbers 3, 7, 10 - strictly increasing. +# +# Example 2 +# Input: $str = 'Alice bought 5 apples 2 oranges 9 bananas' +# Output: false +# +# Example 3 +# Input: $str = 'I ran 1 mile 2 days 3 weeks 4 months' +# Output: true +# +# Example 4 +# Input: $str = 'Bob has 10 cars 10 bikes' +# Output: false +# +# Example 5 +# Input: $str = 'Zero is 0 one is 1 two is 2' +# Output: true +*/ + +package main + +import ( + "fmt" + "regexp" + "strconv" +) + +func Slice_Atoi(strArr []string) ([]int) { + var str string + var i int + var err error + + iArr := make([]int, 0, len(strArr)) + for _, str = range strArr { + i, err = strconv.Atoi(str) + if err != nil { + return nil + } + iArr = append(iArr, i) + } + return iArr +} + +func checkSortedArray(arr []int) (bool) { + sortedArray := true + for i:=0; i<=len(arr)-1; i++ { + for j:=0; j<len(arr)-1-i; j++ { + if arr[j] >= arr[j+1]{ + sortedArray = false + break + } + } + } + return sortedArray +} + +func ascending_numbers(str string) { + r := regexp.MustCompile(`\d+`) + matches := r.FindAllString(str, -1) + iMatches := Slice_Atoi(matches) + fmt.Printf("'%s' -> %t\n", str, checkSortedArray(iMatches) ) +} + +func main() { + str := "The cat has 3 kittens 7 toys 10 beds" + ascending_numbers( str ) + + str = "Alice bought 5 apples 2 oranges 9 bananas" + ascending_numbers( str ) + + str = "I ran 1 mile 2 days 3 weeks 4 months" + ascending_numbers( str ) + + str = "Bob has 10 cars 10 bikes" + ascending_numbers( str ) + + str = "Zero is 0 one is 1 two is 2" + ascending_numbers( str ) +} + |
