(Извините, мне пришлось снять мой предыдущий пост, чтобы что-то исправить.)
Недавно я боролся с этой проблемой в одном интервью и не хватило времени (перед этим у меня были другие проблемы). Я вернулся и решил это позже, но мне было просто интересно, как другие люди решат эту проблему. Я все еще немного новичок в программировании, поэтому мой ответ, скорее всего, не самый лучший.
Мне дали следующий код:
import pandas as pd
input_df = pd.DataFrame(
[
'Noon,Feature,Good'.split(','),
'Radar,Refer,Wow'.split(','),
'Other,Day,Mouse'.split(',')
],
columns='String_1,String_2,String_3'.split(',')
)
output_df = pd.DataFrame(
[
[1,0,0,'nop'],
[1,1,1,'bingo'],
[0,0,0,'nop']
],
columns='String_1,String_2,String_3,Bingo'.split(',')
)
Итак, учитывая, что input_df, напишите функция с именем bin go, которая выдаст данный output_df.
Вот что я придумала:
def is_palindrome(s):
s = s.lower()
new_s = ""
for char in s:
if char.isalnum():
new_s += char
if new_s == new_s[::-1]:
return 1
else:
return 0
def bingo(df):
df = df.applymap(is_palindrome)
num_col = len(df.columns)
sums = df.apply(sum, axis=1)
values = []
for item in sums:
if item == num_col:
values.append('bingo')
else:
values.append('nop')
df['Bingo'] = values
return df
output_df.equals (bin go (input_df)) возвращает True поэтому я считаю, что я решил проблему в этом случае. Спасибо за любой совет, хотел бы видеть, как другие люди решают это более эффективно.