اشتراک در
15 دیدگاه
با سلام
برای سوال “رشته در کوئرا” سه کد زیر رو نوشتم ولی هر کدوم اشکالاتی دارن و نتونستم امتیاز کامل رو بگیرم، کسی از دوستان میتونه راهنمایی کنه؟ ممنون
روش 1 : پیاده سازی سوال
num = int(input()) s1 = "1" for i in range(2,num+1): s1 = s1+str(i)+s1 print(sum([int(item) for item in (s1)]) % 1000000007)
روش 2: با توجه به این الگو
n*pow(2,0) , pow(2,1)*(n-1) , (n-2)*pow(2,2), …….
num = int(input()) Sum ,j = 0 , 0 for i in range(num,0,-1): Sum +=i * pow(2,j,1000000007) #print("i:",i,"j:",j,"pow:",pow(2,j,1000000007)) j += 1 #print("i:",i"j:",j,"pow:",pow(2,j,1000000007)) print(Sum%1000000007)
روش 3 : بازگشتی
num = int(input()) s1 = "1" for i in range(2,num+1): s1 = s1+str(i)+s1 print(sum([int(item) for item in (s1)]) % 1000000007)
سلام
من سوال 3 (نامهها در کوئرا) را با این کد حل کردم امتیاز 91 گرفتم و برای چنتا تست اخر ارور time limit میگیرم به نظرتون مشکل از کندی زبان پایتون هستش یا این کد هنوز میتونه بهینه تر باشه ؟
first_input = input() n = int(first_input.split()[0]) m = int(first_input.split()[1]) secend_input = input() l = list(map(int, secend_input.split())) # def main(n, m, l): # first main func # while m: # if n/2 < l.count(m): # return 'NO' # m -= 1 # return 'YES' def main(n, m, l): # secend main func ( more optimal ) most_frequent = max(set(l), key = l.count) most_frequent_count = l.count(most_frequent) if most_frequent_count > n/2: return 'NO' return 'YES' print(main(n, m, l))