diff --git a/.gitignore b/.gitignore index c59e0576f3ed079278e4d42db63d0e0b9ea1c5d3..7e09ec9221a6434f32f31ca2d31312a35c2d1f95 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ __pycache__ *.out helper.py test.md +data_backup/dailycode diff --git a/helper.py b/helper.py index dfe3502a2f36138afa8ee6336c92cd64abe26d3b..a69f4ed44f0ea9ea4895ce5b1f4427dfe72ce96d 100644 --- a/helper.py +++ b/helper.py @@ -1,6 +1,7 @@ import os import re import sys +import collections import uuid import json import shutil @@ -326,8 +327,48 @@ def extract_it_knowledge(): f.write(solution_md_data) -extract_it_knowledge() - - +def write_back_topick_link(): + data_dirs = ['data_backup/cpp_code_json', 'data_backup/java_code_json', 'data_backup/python_code_json', 'data_backup/leetcode'] + question_paths = [] + for dir in data_dirs: + files = get_files_path(dir, '.json') + for file in files: + data = load_json(file) + question_title = data['question_title'] + if question_title in ['数组排序', '字符串排序', '按要求实现程序功能', '计算阶乘的和', '字符串统计']: + # print(question_title) + continue + else: + question_paths.append(file) + dst_match_paths = [] + match_dirs = ['data_backup/dailycode/1.dailycode初阶', 'data_backup/dailycode/2.dailycode中阶', 'data_backup/dailycode/3.dailycode高阶'] + match_languages = ['1.cpp', '2.java', '3.python'] + for match_dir in match_dirs: + for language in match_languages: + dst_match_dir = os.path.join(match_dir, language) + + exercises_dirs = os.listdir(dst_match_dir) + for tem in exercises_dirs: + assert 'exercises' in tem + exercises_dir = os.path.join(dst_match_dir, tem) + solution_path = os.path.join(exercises_dir, 'solution.json') + dst_match_paths.append(solution_path) + for pipline_exercises_path in dst_match_paths: + pipline_data = load_json(pipline_exercises_path) + pipline_data_title = pipline_data['title'] + for old_path in question_paths: + old_data = load_json(old_path) + old_data_title = old_data['question_title'] + if pipline_data_title == old_data_title: + print(pipline_data_title) + print(old_data_title) + pipline_data['topic_link'] = old_data['topic_link'] + print(pipline_data['topic_link']) + print() + dump_json(pipline_exercises_path, pipline_data) + break + # print(collections.Counter(question_titles)) + +write_back_topick_link() # classify_leetcode() \ No newline at end of file