Професионална програма
Loading...
+ Нов въпрос
spetrov6 avatar spetrov6 2 Точки

Sum Of A Beach - Python Fundamentals More Exercises

Здравейте ,

От скоро уча python fundamentals , и имам затруднения със задачата Sum Of A Beach , а за тази задача не намирам решения в форума, и едвали ще бъде решена от лекторите понеже е в допълнителните задачи.

1.Sum of a Beach

Beaches are filled with sand, water, fish, and sun. Given a string, calculate how many times the words "Sand", "Water", "Fish", and "Sun" appear (case insensitive).

Examples:

input                                                                 output

WAtErSlIde                                                      1

GolDeNSanDyWateRyBeaChSuNN                3

gOfIshsunesunFiSh                                         4

cItYTowNcARShoW                                         0

Аз успях да реша задачата и judge даде 100/100 със кодът отдолу, но този код не ми се струва грам ок,и мисля че може да бъде направен много по-добре и по-красиво.

sentence = list(input().lower())
words = 0
for index in range(len(sentence)):
    if sentence[index] == "f" and index + 3 <= len(sentence):
        if sentence[index + 1] == "i" and sentence[index + 2] == "s" and sentence[index + 3] == "h":
            words += 1
    if sentence[index] == "s" and index + 3 <= len(sentence):
        if sentence[index + 1] == "a" and sentence[index + 2] == "n" and sentence[index + 3] == "d":
            words += 1
    if sentence[index] == "s" and index + 2 <= len(sentence):
        if sentence[index + 1] == "u" and sentence[index + 2] == "n":
            words += 1
    if sentence[index] == "w" and index + 4 <= len(sentence):
        if sentence[index + 1] == "a" and sentence[index + 2] == "t" and sentence[index + 3] == "e" and sentence[index + 4] == "r":
            words += 1
print(words)

Можете ли да ми дадете идей как да подобря кода.

Благодаря предварително, и приятен ден.

 

Тагове:
0
Fundamentals Module
idasanka avatar idasanka 118 Точки

seo little rock Great! didnt know about this before, I had doubts but thanks for clarifying.

0
ANTONKOS avatar ANTONKOS 2 Точки

Колега,

Аз успях с този код използвайки .re module. Който намерих в Google.

Но мисля, че кодът идва прекалено бавен за judge.

import re
long_word = input()

ls1 = re.findall("fish", long_word, flags=re.IGNORECASE)
ls2 = re.findall("sun", long_word, flags=re.IGNORECASE)
ls3 = re.findall("water", long_word, flags=re.IGNORECASE)
ls4 = re.findall("sand", long_word, flags=re.IGNORECASE)
ls = ls1 + ls2 + ls3 + ls4

if not ls:
    print(0)
else:
    print(len(ls))

Дано малко съм бил полезен!

0
16/01/2021 00:20:10
spetrov6 avatar spetrov6 2 Точки

Благодаря ти.

0
KaloyanKoev avatar KaloyanKoev 3 Точки

Здравей, колега. 

След като се омотах няколко пъти на тази задача, стигах до следното решение:

https://pastebin.com/LkA2bB82

 

 

 

0
24/01/2021 23:22:49
DilianaS avatar DilianaS 1 Точки

Не се бях сетила за това, благодаря :)

0