龐果英雄會 xml字串檔案的解析

2021-06-17 22:11:11 字數 3014 閱讀 1288

不知道為什麼提交後總是失敗, 本機編譯通過。 總是使用用例失敗。

#include #include #include using namespace std;

struct xmlattribute ;

struct xmlnode ;

void addnodeattribute(xmlnode* pnode, xmlattribute* patt) else

ptempatt->pnext = patt;

patt->ppre = ptempatt;

}pnode->nattcount++;

//printf("%s%d", "addnodeattribute end: ", pnode->nattcount);

}void addchildnode(xmlnode* pnode, xmlnode* pchildnode) else

ptempnode->pnextbrother = pchildnode;

pchildnode->pprebrother = ptempnode;

pchildnode->nfloor = pnode->nfloor + 1;

pchildnode->nnum = ptempnode->nnum + 1;

}pchildnode->pparentnode = pnode;

pnode->nchildcount++;

//printf("%s%d", "addchildnode end: ", pnode->nchildcount);

}void freenodeattributes(xmlnode* pnode)

pnode->pattlist = null;

//printf("%s", "freenodeattributes end");

}// 釋放節點記憶體, 不釋放兄弟節點, 只對兄弟節點做雙向鏈結

void freenode(xmlnode* pnode) else if (pnode->pparentnode)

}// 處理父節點

if (pnode->pparentnode)

}pnode->pparentnode = null;

// 通過棧遍歷刪除字節點

listpnodeslist;

pnodeslist.push_front(pnode);

while (pnodeslist.size())

}pnodeslist.pop_front(); // 從棧移除

freenodeattributes(ptempnode);

//printf("%s%s", "free node: ", ptempnode->sname.c_str());

delete ptempnode;

ptempnode = null;

}if (ptempnode) }}

}string trimleft(string& str)

tempstr = str.substr(nleftpos);

return tempstr;

}string trimright(string& str)

if (ncount)

return tempstr;

}string strtrim(string& str)

enum nodestatus ;

nodestatus parsingsubstringtonode(string str, xmlnode* pnode) else if (str.at(str.size() - 2) == '/')

}nrightpos = str.find("=");

}} else

}//printf("%s", "parsingsubstringtonode end");

return status;

}xmlnode* buildtree(string& in) else

nodelist.push_front(pnode);

break;

}case nodefinished: else

}break;

}case attfinished: else

break;}}

if (status == nodeerror)

if (nrightpos + 1 < in.size()) else

} else

}return prootnode;

}string gettreestring(xmlnode* pnode)

str += ptempnode->sname;

if (ptempnode->nfloor > 0)

str += snewline;

// 輸出屬性

xmlattribute* ptempatt = ptempnode->pattlist;

while (ptempatt)

str += ptempatt->sname + ":" + ptempatt->stext + snewline;

ptempatt = ptempatt->pnext;

}// 字節點入棧

xmlnode* pchildnode = ptempnode->pchildnode;

// 首先逆序

while (pchildnode && pchildnode->pnextbrother)

while (pchildnode)

}return str;

}string parsingxml(string str)

else

}xmlnode* prootnode = buildtree(in);

result = gettreestring(prootnode);

// 清理樹

freenode(prootnode);

//printf("%s", "parsingxml end");

return result;

}int main()

挑戰龐果英雄會之子串行的個數

題目詳情 本題同樣來自caopengcs,只要你有興趣,每個人都可以出題 出題入口在主頁右側邊欄 貢獻題目 我要發布 內 以下是題目詳情 子串行的定義 對於乙個序列a a 1 a 2 a n 則非空序列a a p1 a p2 a pm 為a的乙個子串行,其中1 p1例如 4,14,2,3和14,1,...

龐果網 合法字串

題目詳情 用n個不同的字元 編號1 n 組成乙個字串,有如下2點要求 1 對於編號為i 的字元,如果2 i n,則該字元可以作為最後乙個字元,但如果該字元不是作為最後乙個字元的話,則該字元後面可以接任意字元 2 對於編號為i的字元,如果2 i n,則該字元不可以作為最後乙個字元,且該字元後面所緊接著...

龐果網 字串的完美度

ps 龐果好久沒出新題了。題目 我們要給每個字母配乙個1 26之間的整數,具體怎麼分配由你決定,但不同字母的完美度不同,而乙個字串的完美度等於它裡面所有字母的完美度之和,且不在乎字母大小寫,也就是說字母f和f的完美度是一樣的。現在給定乙個字串,輸出它的最大可能的完美度。例如 dad,你可以將26分配...