不知道為什麼提交後總是失敗, 本機編譯通過。 總是使用用例失敗。
#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分配...