From 79f5bc63fac4acd3e616625af76e3950ca060a9c Mon Sep 17 00:00:00 2001 From: linyongji Date: Fri, 29 Jan 2021 08:04:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E6=94=AF17=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 +++ Alogrithm/.vs/Alogrithm/v16/.suo | Bin 105984 -> 104960 bytes Alogrithm/Alogrithm/Alogrithm.vcxproj | 4 ++ Alogrithm/Alogrithm/Alogrithm.vcxproj.filters | 9 ++++ Alogrithm/Alogrithm/config/17_WordBreak.ini | 16 +++++++ Alogrithm/Alogrithm/include/17_WordBreak.h | 6 +++ Alogrithm/Alogrithm/src/17_WordBreak.cpp | 44 ++++++++++++++++++ Alogrithm/Alogrithm/src/main.cpp | 2 - Alogrithm/UnitTest/UnitTest.cpp | 23 +++++++++ Alogrithm/UnitTest/UnitTest.vcxproj | 2 +- Alogrithm/UnitTest/pch.cpp | 18 +++++++ Alogrithm/UnitTest/pch.h | 2 + 12 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 Alogrithm/Alogrithm/config/17_WordBreak.ini create mode 100644 Alogrithm/Alogrithm/include/17_WordBreak.h create mode 100644 Alogrithm/Alogrithm/src/17_WordBreak.cpp diff --git a/.gitignore b/.gitignore index 348e7e4..1033eb9 100644 --- a/.gitignore +++ b/.gitignore @@ -154,3 +154,9 @@ Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/5ccdb9c64312b2ee/16_REVERSEBITS.ipch Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/969dd2cbf6a00d1b/16_REVERSEBITS.ipch Alogrithm/.vs/Alogrithm/v16/TestStore/0/003.testlog Alogrithm/Alogrithm/Debug/16_ReverseBits.obj +Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/13d1a063a12e2911/17_WORDBREAK.ipch +Alogrithm/Alogrithm/Debug/17_WordBreak.obj +*.tlog +*.coverage +*.testlog +*.ipch diff --git a/Alogrithm/.vs/Alogrithm/v16/.suo b/Alogrithm/.vs/Alogrithm/v16/.suo index 644a4f682149d464d398dd826e064dd118788cad..245c35eadb5dd3653079dd06d80b26ab9e58c147 100644 GIT binary patch delta 8757 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 delta 7178 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 NTG|J9T#K^f{}+KyA6NhY diff --git a/Alogrithm/Alogrithm/Alogrithm.vcxproj b/Alogrithm/Alogrithm/Alogrithm.vcxproj index e5c3a6e..0351099 100644 --- a/Alogrithm/Alogrithm/Alogrithm.vcxproj +++ b/Alogrithm/Alogrithm/Alogrithm.vcxproj @@ -89,6 +89,7 @@ WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false $(IntDir)%(RelativeDir) + stdc11 Console @@ -148,6 +149,7 @@ + @@ -167,6 +169,7 @@ + @@ -185,6 +188,7 @@ + diff --git a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters index 97af554..082749f 100644 --- a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters +++ b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters @@ -75,6 +75,9 @@ 源文件\src + + 源文件\src + @@ -125,6 +128,9 @@ 头文件\include + + 头文件\include + @@ -175,5 +181,8 @@ 资源文件\config + + 资源文件\config + \ No newline at end of file diff --git a/Alogrithm/Alogrithm/config/17_WordBreak.ini b/Alogrithm/Alogrithm/config/17_WordBreak.ini new file mode 100644 index 0000000..a68ed95 --- /dev/null +++ b/Alogrithm/Alogrithm/config/17_WordBreak.ini @@ -0,0 +1,16 @@ +[Test1] +Input1=cppcode +Input2=cpp,code +Output=1 +[Test2] +Input1=catsanddog +Input2=cats,sand,dog +Output=0 +[Test3] +Input1=catsanddog +Input2=cats,and,dog +Output=1 +[Test4] +Input1=catsanddog +Input2=cats,and,dog +Output=1 \ No newline at end of file diff --git a/Alogrithm/Alogrithm/include/17_WordBreak.h b/Alogrithm/Alogrithm/include/17_WordBreak.h new file mode 100644 index 0000000..d98e4f9 --- /dev/null +++ b/Alogrithm/Alogrithm/include/17_WordBreak.h @@ -0,0 +1,6 @@ +#pragma once +#include +#include +#include + +bool WordBreak(char* s, char** wordDict, int wordDictSize); \ No newline at end of file diff --git a/Alogrithm/Alogrithm/src/17_WordBreak.cpp b/Alogrithm/Alogrithm/src/17_WordBreak.cpp new file mode 100644 index 0000000..091b488 --- /dev/null +++ b/Alogrithm/Alogrithm/src/17_WordBreak.cpp @@ -0,0 +1,44 @@ +#include "../include/17_WordBreak.h" +//ĿһǿַsһǿյбֵwordDict +// жsǷԱոΪһֵгֵĵ +//˼·ַsĵһַʼsǰword_lenֵַеԪرȽϣƥ䵽ͬģӦöλ1 +// ÿöλ1ǰȿһλǷΪҲΪ1Ϊ10һֱһַһַödp[s_len] +bool WordBreak(char* s, char** wordDict, int wordDictSize) { + int s_len = strlen(s); // ȡsij + //쳣ж + if (wordDict == NULL || wordDictSize == 0 || s == NULL) { + return false; + } + // һdp飬ʾǰ±ʱǰĸǷ㱻ʼΪfalse + bool *dp = (bool *)malloc(sizeof(bool)*(s_len + 1)); + memset(dp, false, sizeof(bool) * (s_len + 1)); + dp[0] = true; // 0ҪʼΪtrue + + // ӵһĸʼ + for (int i = 1; i <= s_len; i++) { + // ӵһʿʼ + for (int j = 0; j < wordDictSize; j++) { + // ȡǰȽϵĵʳ + int word_len = strlen(wordDict[j]); + // sǰλǰword_lenλÿʼworDictбȽǷ + int k = i - word_len; //kͬʱҲdp[]һε״̬ + // k < 0ʾ˹ͷˣ϶ + if (k < 0) { + continue; + } + // ǰiλú͵ǰȽϵwordDictȣôǰkλ֮ǰҲҪǰIJ㣬ʹڴk~iҲû + if (strncmp(s + k, wordDict[j], word_len) == 0) { + dp[i] = (dp[k] && dp[0]); + } + // iλˣҪٱȽϺworDictˣֱӱȽһiλü + if (dp[i] == 1) { + break; + } + } + } + for (int t = 0; t < s_len; t++) + printf("%d ", dp[t]); + // sһλǷз + return dp[s_len]; + +} diff --git a/Alogrithm/Alogrithm/src/main.cpp b/Alogrithm/Alogrithm/src/main.cpp index 6fb3c89..906a4ae 100644 --- a/Alogrithm/Alogrithm/src/main.cpp +++ b/Alogrithm/Alogrithm/src/main.cpp @@ -1,9 +1,7 @@ #include -#include "../include/16_ReverseBits.h" int main() { - printf("%ld\n", ReverseBits(1)); return 0; } diff --git a/Alogrithm/UnitTest/UnitTest.cpp b/Alogrithm/UnitTest/UnitTest.cpp index 8b0fe93..a81c013 100644 --- a/Alogrithm/UnitTest/UnitTest.cpp +++ b/Alogrithm/UnitTest/UnitTest.cpp @@ -18,6 +18,7 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework; #define FileName_14 "../Alogrithm/config/14_SingleNumber.ini" #define FileName_15 "../Alogrithm/config/15_WordPattern.ini" #define FileName_16 "../Alogrithm/config/16_ReverseBits.ini" +#define FileName_17 "../Alogrithm/config/17_WordBreak.ini" namespace UnitTest @@ -310,4 +311,26 @@ namespace UnitTest } } }; + TEST_CLASS(UnitTest_17) + { + TEST_METHOD(TestMethode1) + { + char Section_Name[100][10] = { 0 }; + int Section_Count = CalcCount(100, Section_Name, FileName_17); + CString Input1, Input2,Output; + char Str_char[1024] = { 0 }; + char *WordDic[100]; + for (int i = 0; i < Section_Count; i++) { + GetPrivateProfileString(Section_Name[i], "Input1", " ", Input1.GetBuffer(200), 200, FileName_17); + GetPrivateProfileString(Section_Name[i], "Input2", " ", Input2.GetBuffer(500), 500, FileName_17); + GetPrivateProfileString(Section_Name[i], "Output", " ", Output.GetBuffer(20), 20, FileName_17); + + strcpy(Str_char, Input1); + int Wordic_count = str_device3(Input2, WordDic); + bool nReal = WordBreak(Str_char, WordDic, Wordic_count); + Assert::AreEqual(nReal, CstrToBool(Output)); + } + + } + }; } diff --git a/Alogrithm/UnitTest/UnitTest.vcxproj b/Alogrithm/UnitTest/UnitTest.vcxproj index 1e9fecc..8699c55 100644 --- a/Alogrithm/UnitTest/UnitTest.vcxproj +++ b/Alogrithm/UnitTest/UnitTest.vcxproj @@ -103,7 +103,7 @@ Windows $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) DebugFull - ../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;../Alogrithm/Debug/10_BinaryTreePaths.obj;../Alogrithm/Debug/11_CanWinNim.obj;../Alogrithm/Debug/12_IsValid.obj;../Alogrithm/Debug/13_MyAtoi.obj;../Alogrithm/Debug/14_SingleNumber.obj;../Alogrithm/Debug/15_WordPattern.obj;../Alogrithm/Debug/16_ReverseBits.obj;%(AdditionalDependencies) + ../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;../Alogrithm/Debug/10_BinaryTreePaths.obj;../Alogrithm/Debug/11_CanWinNim.obj;../Alogrithm/Debug/12_IsValid.obj;../Alogrithm/Debug/13_MyAtoi.obj;../Alogrithm/Debug/14_SingleNumber.obj;../Alogrithm/Debug/15_WordPattern.obj;../Alogrithm/Debug/16_ReverseBits.obj;../Alogrithm/Debug/17_WordBreak.obj;%(AdditionalDependencies) diff --git a/Alogrithm/UnitTest/pch.cpp b/Alogrithm/UnitTest/pch.cpp index 39c05ed..996e6c5 100644 --- a/Alogrithm/UnitTest/pch.cpp +++ b/Alogrithm/UnitTest/pch.cpp @@ -88,6 +88,24 @@ int str_device2(CString str, char(*return_str)[50]) } return value_count; //返回数组首地址 } +int str_device3(CString str, char* *return_str) +{ + int value_count = 0; + char* token; //存放被切割后的第一个子串 + char Section_value[500] = { 0 };//存放nums转换成string类型的结果 + memset(Section_value, 0, sizeof(char) * 500); + strcpy(Section_value, str);//将CString类型的字符串转换成char类型,方便后面切割字符串 + //获得切割到的第一个字符串 + token = strtok(Section_value, ","); + /* 继续获取其他的子字符串 */ + while (token != NULL) { + return_str[value_count] = (char*)malloc(sizeof(char) * 100); + strcpy(return_str[value_count], token); + token = strtok(NULL, ","); + value_count++; //记录存了多少个元素 + } + return value_count; //返回数组首地址 +} //字符串转bool bool CstrToBool(CString str) { diff --git a/Alogrithm/UnitTest/pch.h b/Alogrithm/UnitTest/pch.h index 4c93404..6681e82 100644 --- a/Alogrithm/UnitTest/pch.h +++ b/Alogrithm/UnitTest/pch.h @@ -29,11 +29,13 @@ #include"../Alogrithm/include/14_SingleNumber.h" #include"../Alogrithm/include/15_WordPattern.h" #include"../Alogrithm/include/16_ReverseBits.h" +#include"../Alogrithm/include/17_WordBreak.h" int CalcCount(int n, char(*str)[10],const char *FileName); int* str_device(CString str, int* value_count); int str_device2(CString str, char(*return_str)[50]); +int str_device3(CString str, char**return_str); bool CstrToBool(CString str);