leetcode 제목: Palindrome Partitioning 및 Palindrome Partitioning II
Given a string s, partition s such that every substring of the partition is a palindrome.
Return all possible palindrome partitioning of s.
For example, given s =
"aab"
, Return [
["aa","b"],
["a","a","b"]
]
문제 풀이 사고방식:1) 둘 사이의 회문 여부를 2차원 그룹으로 저장한다.
2) 문자열 끝부분부터 가능한 문자열을 저장합니다.
코드:
class Solution {
public:
vector> partition(string s)
{
int len = s.size();
vector>f(len+1,vector(len));
for (int i=1;i=0;j--)
{
if(ispalindrome(s,j,i-1)==1)
{
f[i][j]=true;
}
}
}
dealstring(s,len,f);
return m_str;
}
private:
vector>m_str;
vectorm_temstr;
void dealstring(string s,int count,const vector>&f)
{
if (count == 0)
{
vectoroneanswer(m_temstr.rbegin(),m_temstr.rend());
m_str.push_back(oneanswer);
}
for (int i=0;i
제목 2:
Given a string s, partition s such that every substring of the partition is a palindrome.
Return the minimum cuts needed for a palindrome partitioning of s.
For example, given s =
"aab"
, Return 1
since the palindrome partitioning ["aa","b"]
could be produced using 1 cut. 문제 해결 방법:
1) 2차원 그룹 저장으로 둘 사이의 회문 여부를 판단한다.
2) 이 점에서 오른쪽으로 가는 최소 절수를 1차원 그룹으로 동시에 접근한다.
코드:
class Solution {
public:
int minCut(string s)
{
int size = s.size();
int mincount[size+1];
vector >m_bool(size,vector(size));
for(int i=0;i<=size;i++)
{
mincount[i] = size-1-i;
}
for(int j=size-1;j>=0;j--)
{
for(int k = j;k
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
0부터 시작하는 LeetCode Day8 「1302. Deepest Leaves Sum」해외에서는 엔지니어의 면접에 있어서 코딩 테스트라고 하는 것이 행해지는 것 같고, 많은 경우, 특정의 함수나 클래스를 주제에 따라 실장한다고 하는 것이 메인이다. 빠른 이야기가 본고장에서도 행해지고 있는 것 같은 코...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.