BigHeadCrew
Junior Member
ah ừ. Mình tưởng thớt chỉ muốn luyện leetcode đi phỏng vấn thôiPython tốt nhưng đây là lập trình thi đấu. Ít ai xài Python.
ah ừ. Mình tưởng thớt chỉ muốn luyện leetcode đi phỏng vấn thôiPython tốt nhưng đây là lập trình thi đấu. Ít ai xài Python.
Mấy bác trên giải kiểu gì vậy nhỉ? O(1) tất cả các thao tác mà dùng Collections.min với List.min.
GetMin của bác này cũng O(n) rồi nha
Vậy là bác check if cả push và pop nữa? Rồi lúc gọi min() thì phải lấy index nữa.
chả bù cho cái hướng của emPython:class Solution(object): def longestPalindrome(self, s): """ :type s: str :rtype: int """ hashTB = {} for c in s: if c in hashTB: hashTB[c] += 1 else: hashTB[c] = 1 even = 0 odd = 0 for value in hashTB.values(): if value >= 2 and value % 2 == 0: even += value if value >=3 and value % 2 == 1: odd += (value-1) return min(even+odd+1,len(s))
B2:[Easy] - Longest palindrome
Bài này đánh tag easy nhưng mình mất tận 6 lần submit mới đúng vì nghĩ hướng giải chưa hoàn chỉnh + test hay. speed <62%. mem <12.5% (hashTable lưu nặng ghê)
Hóng các bác chia sẻ idea nhanh hơn.
class Solution(object):
def longestPalindrome(self, s):
"""
:type s: str
:rtype: int
"""
if len(s) == 0:
return 0
appear = [0] * 256
for char in s:
i = ord(char)
appear[i] = appear[i] + 1
ans = 0
rest = 0
for i in appear:
ans += i - i % 2
rest += i % 2
if rest > 0:
return ans + 1
else:
return ans
Python tốt nhưng đây là lập trình thi đấu. Ít ai xài Python.
http://vnoi.info/wiki/translate/topcoder/Computational-Complexity-Section-1Qua em đọc đề xong làm luôn ko để ý vụ big O mấy bác xem ở đâu thế nhỉ hay là mỗi lần giải đều phải luôn để ý big O. Em không thấy nó ghi chú trong đề
Đúng như bác nói, không nên auto cộng 1 vô, em gặp test sai, sửa nên nó loạn xì quần, ý tưởng là đếm số lần xuất hiện của các phần tử, phần tử nào > 2 thì được phép đưa vào xâu đối xứng vì cứ đưa 1 ký tự vào đầu và vào cuối xâu, hay nói cách khác xâu có dạng a***-***a:Cách này của bác không đúng vì đâu phải lúc nào cũng cộng 1, mà sao phải có cái min nhỉ?
Còn lý do lấy min là sai test này:"civilwartestingwhetherthatnaptionoranynartionsoconceivedandsodedicatedcanlongendureWeareqmetonagreatbattlefiemldoftzhatwarWehavecometodedicpateaportionofthatfieldasafinalrestingplaceforthosewhoheregavetheirlivesthatthatnationmightliveItisaltogetherfangandproperthatweshoulddothisButinalargersensewecannotdedicatewecannotconsecratewecannothallowthisgroundThebravelmenlivinganddeadwhostruggledherehaveconsecrateditfaraboveourpoorponwertoaddordetractTgheworldadswfilllittlenotlenorlongrememberwhatwesayherebutitcanneverforgetwhattheydidhereItisforusthelivingrathertobededicatedheretotheulnfinishedworkwhichtheywhofoughtherehavethusfarsonoblyadvancedItisratherforustobeherededicatedtothegreattdafskremainingbeforeusthatfromthesehonoreddeadwetakeincreaseddevotiontothatcauseforwhichtheygavethelastpfullmeasureofdevotionthatweherehighlyresolvethatthesedeadshallnothavediedinvainthatthisnationunsderGodshallhaveanewbirthoffreedomandthatgovernmentofthepeoplebythepeopleforthepeopleshallnotperishfromtheearth"
-> t:6, a:4,r:2 2 : Chính vì em lúc nào cũng cộng 1 nên có thể có case mọi ký tự đều chẵn pass hết nó lại lớn hơn số ký tự của xâu."tattarrattat"
Bác cho em hỏi xíu về đếm số lần xuất hiệncủa ký tự trong chuỗi. Em phải dùng 2 vòng lặp lồng nhau. Còn như của bác là chỗbài này xử lí cơ bản thôi, đâu cần hash
C++:int a[256] = {0}; for (int i = 0; i < s.size(); ++i) a[s[i]]++;
a[s[i]]++
char trong c++ nó là một số nguyên thôi bác nên dùng mảng đếm được.Bác cho em hỏi xíu về đếm số lần xuất hiệncủa ký tự trong chuỗi. Em phải dùng 2 vòng lặp lồng nhau. Còn như của bác là chỗlà sao vậy, bác giải thích giúp em được ko? s(i) là char mà sao dùng a(index char) được nhỉ?Code:a[s[i]]++
Chào các bác em có bài lập trình nghĩ mãi không ra. Có bác nào hứng thú nghĩ cách với em ạ. Em cám ơn! View attachment 163068
Là sao bác?Duyệt 1 lần thôi mà fen
Bác rảnh không giải thích giùm em với ạ. Ngu quá.Duyệt 1 lần thôi mà fen
1111 000 1 0 111 11111
flip = false;
If (next == 1)
{
temp +=1
CompareAndAssign
}
else {
flip ? { CompareAndAssign ; temp = 0; } : { temp +=1; CompareAndAssign, !flip }
}