📌 Задача палиндром наибольшей длины, полученный с помощью соединений из слов, состоящих из двух букв.
Сложность: Средняя
Условие задачи: дан массив строк, каждый элемент которого состоит из двух букв английского алфавита в нижнем регистре.
Необходимо создать палиндром наибольшей длины путем выбора некоторых элементов из массива строк и компаниовки их в любом порядке. Каждый элемент массива можно использовать не более одного раза.
В ответе надо вернуть длину такого палидрома.
Палиндром - строка, которая одинаково читаются слева направо и справа налево.
Пример:
Ввод:
Объяснение:
Ввод:
Объяснение:
Ввод:
Решение
Пишите свое решение в комментариях👇
Сложность: Средняя
Условие задачи: дан массив строк, каждый элемент которого состоит из двух букв английского алфавита в нижнем регистре.
Необходимо создать палиндром наибольшей длины путем выбора некоторых элементов из массива строк и компаниовки их в любом порядке. Каждый элемент массива можно использовать не более одного раза.
В ответе надо вернуть длину такого палидрома.
Палиндром - строка, которая одинаково читаются слева направо и справа налево.
Пример:
Ввод:
words = ["lc","cl","gg"]
Вывод: 6
Объяснение:
lc" + "gg" + "cl" = "lcggcl"
или же "clgglc
", но оба имеют максимальную длину 6. Ввод:
words = ["ab","ty","yt","lc","cl","ab"]
Вывод: 8
Объяснение:
"ty" + "lc" + "cl" + "yt" = "tylcclyt"
или "lcyttycl"
Ввод:
words = ["cc","ll","xx"]
Вывод: 2
Решение
Пишите свое решение в комментариях👇
👎4👍3❤2🔥1
Погружение в принципы SOLID с примерами на языке Golang
Принципы SOLID - это набор из пяти принципов проектирования для написания удобного в обслуживании и масштабируемого программного обеспечения в объектно-ориентированном программировании. Они были введены Робертом К. Мартином. Эти принципы представляют собой рекомендации по структурированию кода таким образом, чтобы его было легко понять, изменить и расширить.
💎 Чат: ссылка
Читать статью
Принципы SOLID - это набор из пяти принципов проектирования для написания удобного в обслуживании и масштабируемого программного обеспечения в объектно-ориентированном программировании. Они были введены Робертом К. Мартином. Эти принципы представляют собой рекомендации по структурированию кода таким образом, чтобы его было легко понять, изменить и расширить.
💎 Чат: ссылка
Читать статью
👍6🔥2
Chisel
Chisel - это быстрый TCP/UDP-туннель на Go, для пеередачи HTTP запросов, защищенный с помощью SSH. Chisel в основном полезен для прохождения через брандмауэры, но может быть использован и для обеспечения безопасной конечной точки входа в сеть.
Chisel - это быстрый TCP/UDP-туннель на Go, для пеередачи HTTP запросов, защищенный с помощью SSH. Chisel в основном полезен для прохождения через брандмауэры, но может быть использован и для обеспечения безопасной конечной точки входа в сеть.
$ go install github.com/jpillora/chisel@latest
💎 Чат: ссылка
Github👍4
Что выведет код ?
package main
import (
"fmt"
)
func main() {
i := -5
j := +5
fmt.Printf("%+d %+d", i, j)
}
Ответ👍2👎2
Что выведет код?
package main
import "fmt"
func main() {
for t := 0; t < 10; t++ {
for i := 0; i < 10; i++ {
fmt.Print("*")
}
fmt.Println()
}
}
Ответ🤯16💩4🔥1🖕1
The Ultimate Guide
To Building Database
Driven Apps with Go
Автор: Baron Schwartz
Год издания: 2019
#go #en
Скачать книгу
To Building Database
Driven Apps with Go
Автор: Baron Schwartz
Год издания: 2019
#go #en
Скачать книгу
👍1
Что выведет код ?
Ответ
package main
import "fmt"
func foo(a []int) {
a = append(a, 7)
a[1] = 7
}
func bar(a *[]int) {
*a = append(*a, 7)
}
func main() {
a := []int{1, 2, 3, 4, 5, 6}
fmt.Printf("a[1]=%d\n", a[1])
b := a[1:3]
b[0] = 10
fmt.Printf("1. a[1]=%d\n", a[1]) // что выведет?
b = append(b, a...)
b[0] = 100
fmt.Printf("2. a[1]=%d\n", a[1]) // что выведет?
foo(a)
fmt.Printf("3. a[1]=%d\n", a[1]) // что выведет?
bar(&a)
fmt.Printf("4. a=%v\n", a) // что выведет?
}
Ответ
go.dev
Go Playground - The Go Programming Language
Что выведет код?
package main
import (
"errors"
"fmt"
)
var ErrNotFound = errors.New("Resource was not found")
func main() {
err := raise()
if err == ErrNotFound {
fmt.Println("impossible")
return
}
if err != nil {
fmt.Println("unexpected error")
return
}
}
func raise() error {
return ErrNotFound
}
Ответ🥱3👍1👎1
Что выведет код ?
package main
import "fmt"
func main() {
animals := []string{"bear", "bear", "rabbit", "wolf"}
for _, animal := range animals {
switch animal {
case "rabbit":
fmt.Println(animal, "is so weak!")
fallthrough
case "bear", "wolf":
fmt.Println(animal, "is so strong!")
}
}
}
ОтветЧто выведет код?
package main
func f(n int) (r int) {
defer func() {
r += n
recover()
}()
var f func()
defer f()
f = func() {
r += 2
}
return n + 1
}
func main() {
println(f(3))
}
Ответgo.dev
Go Playground - The Go Programming Language
🤯5