如果乙個數字序列逆置之後跟原序列是一樣的就稱這樣的數字串行為回文序列。例如:
, , 是回文序列,
, , 不是回文序列。
現在給出乙個數字序列,允許使用一種轉換操作:
選擇任意兩個相鄰的數,然後從序列移除這兩個數,並用這兩個數字的和插入到這兩個數之前的位置(只插入乙個和)。
現在對於所給序列要求出最少需要多少次操作可以將其變成回文序列。
輸入描述:
輸入為兩行,第一行為序列長度n ( 1 ≤ n ≤ 50)第二行為序列中的n個整數item[i] (1 ≤ iteam[i] ≤ 1000),以空格分隔。
輸出描述:
輸出乙個數,表示最少需要的轉換次數
輸入例子:
41 1 1 3
輸出例子: 2
思路:每次只考慮數列的首尾即可,序列用(a0,a1,,,an-1)表示,如果首尾相等那麼就是對(a1,a2,,,,an-2)在進行判斷。首尾不等的時候有兩種情況,首部小,那麼就將首部的臨近兩個相加,運算元加一,並對(a2,a3,,,an-1)在進行判斷;尾部小,那麼將尾部的兩個元素相加,運算元加一,並對(a1,a2,,,,an-2)進行判斷。
int getcnt(int *arr, int len)
else if (arr[front]>arr[end])
else
}return count;
}
回文數(網易筆試)
coding utf 8 不用遞迴!人生苦短我用python 首尾指標跟蹤 兩個數不相等就進行加法 小的數加上相鄰的值 defhuiwen item,head,tail times 0 left item 0 head 0 right item 1 tail n 1 while headif lef...
程式設計題 構造回文
給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?輸出需要刪除的字元個數。輸入描述 輸入資料有多組,每組包含乙個字串s,且保證 1 s.length 1000.輸出描述 對於每組資料,輸出乙個整數,代表最少需要刪除的字元個數。輸入例子 abcda goo...
程式設計題 構造回文
內容會持續更新,有錯誤的地方歡迎指正,謝謝 給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?輸出需要刪除的字元個數。輸入描述 輸入資料有多組,每組包含乙個字串s,且保證 1 s.length 1000 輸出描述 對於每組資料,輸出乙個整數,代表最少需要...