Java面向?qū)ο缶幊叹毩?xí)題及答案

Java面向?qū)ο缶幊叹毩?xí)題及答案

長沙一度軟件培訓(xùn)      2022-05-05 09:49:01     77

Java面向?qū)ο缶幊叹毩?xí)題及答案,給我一個(gè)字符串,例如I love java,輸出: java love Ipublic?class?StringReverse?{????????public?void?swap(char

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

給我一個(gè)字符串,例如I love java,輸出: java love I

public?class?StringReverse?{????????public?void?swap(char[]?arr,?int?begin,?int?end)?{??????????while(begin?<?end)?{??????????????char?temp?=?arr[begin];??????????????arr[begin]?=?arr[end];??????????????arr[end]?=?temp;??????????????begin++;??????????????end--;??????????}??????}??????//I?love?java??????public?String?swapWords(String?str)?{??????????char[]?arr?=?str.toCharArray();??????????swap(arr,?0,?arr.length?-?1);??????????int?begin?=?0;??????????for?(int?i?=?1;?i?<?arr.length;?i++)?{??????????????if?(arr[i]?==?'?')?{??????????????????swap(arr,?begin,?i?-?1);??????????????????begin?=?i?+?1;??????????????}??????????}????swap(arr,?begin,?arr.length-1);????????return?new?String(arr);??????}????????????public?static?void?main(String[]?args)?{??????????String?str?=?"I?love?java";??????????System.out.println(new?StringReverse().swapWords(str));??????}???}

輸入一個(gè)正數(shù)n,輸出所有和為n的連續(xù)正數(shù)序列。

分析:設(shè)定兩個(gè)指針,min指向和為n的連續(xù)正數(shù)序列的最小值,max指向和為n的連續(xù)正數(shù)序列最大值。sum表示真正的和。

初始情況下,min、max和sum都指向1.

當(dāng)sum小于n時(shí),max++;

當(dāng)sum大于n時(shí),min++;

當(dāng)sum等于n時(shí),輸出整個(gè)序列。

public?class?a?{public?static?void?getAns(int?n)?{????int?min?=?1;????int?sum?=?1;????int?max?=?1;????while(min?<=?n/2+1)?{????????if(sum?==?n)?{????????????for(int?k?=?min;?k<=max;?k++)?{?????????????????????System.out.println(k+"");????????????}????????????System.out.println();????????????sum?=?sum?-?min;????????????min?++;????????????max?++;????????????sum?=?sum+max;????????}????????if(sum?>?n)?{????????????sum?=?sum?-?min;????????????min?++;????????}?else?{????????????max?++;????????????sum?=?sum?+?max;????????}????}}public?static?void?main(String[]?args)?{????getAns(15);}}

2.給定一個(gè)排好序的鏈表,刪除鏈表中重復(fù)的結(jié)點(diǎn),返回鏈表頭指針。

分析:(1)鏈表中重復(fù)的結(jié)點(diǎn)不需要保留一個(gè),要全部刪除。

(2)因?yàn)橄嗤慕Y(jié)點(diǎn)全部要?jiǎng)h除,所以我們設(shè)定三個(gè)指針,node指向當(dāng)前節(jié)點(diǎn),prev指向前驅(qū),還有一個(gè)指向后繼結(jié)點(diǎn)。一旦遇到node和后繼結(jié)點(diǎn)相等,就node++,知道沒有重復(fù)的再移動(dòng)prev.

(3)注意:頭結(jié)點(diǎn)也可能有重復(fù),所以也可能被刪除,所以需要定義一個(gè)root指向頭結(jié)點(diǎn)。

public?class?a?{????//?結(jié)點(diǎn)定義,包括當(dāng)前結(jié)點(diǎn)的值和next指向????private?static?class?ListNode?{????????private?int?val;????????private?ListNode?next;?????????public?ListNode()?{????????}?????????public?ListNode(int?val)?{????????????this.val?=?val;????????}?????????public?String?toString()?{????????????return?val?+?"";????????}????}?????//?刪除節(jié)點(diǎn)的函數(shù)????public?static?ListNode?delete(ListNode?head)?{????????if?(head?==?null)????????????return?null;????????if?(head.next?==?null)????????????return?head;????????//?定義一個(gè)臨時(shí)的頭結(jié)點(diǎn),因?yàn)轭^結(jié)點(diǎn)也可能被刪除????????ListNode?root?=?new?ListNode();????????root.next?=?head;????????ListNode?prev?=?root;????????ListNode?node?=?head;?????????while?(node?!=?null?&&?node.next?!=?null)?{????????????if?(node.val?==?node.next.val)?{????????????//若有連續(xù)相同的結(jié)點(diǎn),則node要一直++??????while?(node.next?!=?null?&&?node.next.val?==?node.val)????????????????????node?=?node.next;????????????????prev.next?=?node.next;????????????}?else?{????????????????prev.next?=?node;????????????????prev?=?prev.next;????????????}????????????node?=?node.next;????????}????????return?root.next;????}????//打印出來刪除后的結(jié)果????private?static?void?print(ListNode?head)?{????????while?(head?!=?null)?{????????????System.out.print(head?+?"->");????????????head?=?head.next;????????}????????System.out.println("null");????}?????public?static?void?main(String[]?args)?{????????//?按照結(jié)點(diǎn)的定義新建一個(gè)鏈表????????ListNode?n1?=?new?ListNode(1);????????ListNode?n2?=?new?ListNode(1);????????ListNode?n3?=?new?ListNode(2);????????ListNode?n4?=?new?ListNode(2);????????ListNode?n5?=?new?ListNode(2);????????ListNode?n6?=?new?ListNode(3);????????ListNode?n7?=?new?ListNode(5);?????????n1.next?=?n2;????????n2.next?=?n3;????????n3.next?=?n4;????????n4.next?=?n5;????????n5.next?=?n6;????????n6.next?=?n7;????????n7.next?=?null;????????//調(diào)用delete函數(shù),傳入n1的值,當(dāng)成頭結(jié)點(diǎn)????????ListNode?result?=?delete(n1);????????print(result);?????}}

以上就是長沙一度軟件培訓(xùn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java面向?qū)ο缶幊叹毩?xí)題及答案”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。