運用雙鏈表實現字串的拆分,去重,檢測回文

2021-07-05 17:01:03 字數 1957 閱讀 7825

輸入一串字元,可以是字母,數字與符號,空格也包含在內,以問號結束(結束標誌可以自行設定),實現將字串中的字母,數字和其他

字元分開,並輸出字母串的去重後的結果,最後一行為數字串的回文判斷,是為1,不是回文為0.

以下是源**,在vs2013中測試可用:

#include

#include

using namespace std;

class list

char output_data()

list *next;

list *prior; };

void build(list * &list, list * &s)

while (p)

p = p->next; }

cout << "wrong !" << endl; }

void check(list * &list)

else

delete k;

k = null; }

q = q->next; }

p = p->next; }

}void classify(list * &list_a,list * &list_b,list * &list_c)

else if (q->next == null)

else

build(list_b,q);

if (p == list_a)

continue; }

else if (p->output_data() >= 48 && p->output_data() <= 57)

else

else if (q->next == null)

else

build(list_c, q);

if (p == list_a)

continue; }

p = p->next; }

return; }

bool check_repeat(list * &list)

q = p;

p = list;

while (p && q)

p = p->next;

q = q->prior; }

return 1; }

int main()

list *s;

s = new list();

s->next = null;

s->prior = null;

s->input_data(input);

build(list_a,s); }

list *list_b = null;

list *list_c = null;

classify(list_a,list_b,list_c);

list *p;

p = list_a;

if (list_a == null)

else

while (p)

cout << endl;

p = list_b;

if (list_b == null)

else

while (p)

cout << endl;

p = list_c;

if (list_c == null)

else

while (p)

cout << endl;

check(list_b);

p = list_b;

if (list_b == null)

else

while (p)

cout << endl;

if (list_a != null)

else cout << "-1" << endl; }

輸出第一行為數字串,第二行為字母串(去重前),第三行為其他字元,第四行為去重後的字母串,最後一行為數字串是否是回文的判斷

字串的運用

目錄name nick print name name nick print name gender male poem 鋤禾日當午,汗滴禾下土 誰知盤中餐,粒粒皆辛苦 print poem poem 鋤禾日當午,汗滴禾下土 誰知盤中餐,粒粒皆辛苦 print poem print nick s n...

python實現字串完美拆分split

我們想要將以下字串rule進行拆分。字串表示的是乙個規則,由 得到 我們需要將規則中的條件屬性與取值分別提取出來,存放在條件屬性列表cf list與值列表cv list中,規則的結論的屬性與取值也提取出來,分別存放結果屬性列表rf list與值列表rc list。rule rule c s,r s ...

mysql字串拆分實現split功能

目錄 有分隔符的字串拆分 資料庫中 num字段值為 實現的效果 需要將一行資料變成多行 實現的sql select substring index substring index 7654,7698,7782,7788 help topic id 1 1 as num from mysql.help...