書籍表達式得到期望結果的組成種數

題目

給定一個只由0(假)、1(真)、&(邏輯與)、|(邏輯或)和^(異或)五種組成的字符串express,再給定一個布爾值desired。返回express能有多少種組合方式。可以達到desired的結果。

舉例

express“1^0|0|1”,desired=false.

只有1^((0|0)|1)和1^(0|(0|1))的組合可以得到false,返回2.

express=“1”,desired=false

無組合則可以得到false,返回0。

表達式得長度必須是奇數

表達式下標為偶數位置的字符一定是'0'或'1'。

表達式下標為奇數位置的字符一定是'&'或‘|’或‘^’

public boolean isValid(char[] exp){if((exp.length & 1) == 0){return false;}for(int i = 0;i<exp.length;i = i + 2){int((exp[i] != '1') && (exp[i] != '0')){return false;}}for(int i = 1;i<exp.length;i = i + 2){int((exp[i] != '&') && (exp[i] != '|') && (exp[i] != '^') ){return false;}}return true;
}public int num1(String express,boolean desired){if(express == null || express.equals("")){return 0;}char[] exp = express.toCharArray();if(!isValid(exp)){return 0;}return p(exp,desitred,0,exp.length -1);
}public int p(char[] exp,boolean desired,int l,int r){if( l == r){if(exp[l] == '1'){return desired ? 1 : 0;}else{return desired ? 0 : 1;}}int res = 0;if(desired){for(int i = l + 1;i < r; i += 2){switch(exp[i]){case '&':res += p(exp,true,l,i-1) *  p(exp,true,i+1,r);break;case '|':res += p(exp,true,l,i-1) *  p(exp,false,i+1,r);res += p(exp,false,l,i-1) *  p(exp,true,i+1,r);res += p(exp,true,l,i-1) *  p(exp,true,i+1,r);break;case '^':res += p(exp,true,l,i-1) *  p(exp,false,i+1,r); res += p(exp,false,l,i-1) *  p(exp,true,i+1,r);break;}}}else{for(int i = l + 1;i < r; i += 2){switch(exp[i]){case '&':res += p(exp,false,l,i-1) *  p(exp,true,i+1,r);res += p(exp,true,l,i-1) *  p(exp,false,i+1,r);res += p(exp,false,l,i-1) *  p(exp,false,i+1,r);break;case '|':res += p(exp,false,l,i-1) *  p(exp,false,i+1,r);break;case '^':res += p(exp,true,l,i-1) *  p(exp,true,i+1,r); res += p(exp,false,l,i-1) *  p(exp,false,i+1,r);break;}}    }return res;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/40205.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40205.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/40205.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

負載均衡類型和算法解析

假如你正在設計和開發一個分布式服務系統&#xff0c;系統中存在一批能夠獨立運行的服務&#xff0c;而在部署上也采用了集群模式以防止出現單點故障。所謂集群&#xff0c;就是指將多個服務實例集中在一起&#xff0c;對外提供同一業務功能&#xff0c;也就是任意請求都可以由…

吉利銀河L6 AQS空氣質量監控系統

結論 頂配才有AQS 開啟空調且auto模式 則默認開啟AQS 無法關閉AQS AQS的作用 銀河L6 AQS觸發 和 圖標 AQS官方配置參數 官方文檔 吉利用戶手冊

開源即正義,3D軟件Blender設計指南

在當今數字化時代&#xff0c;開源軟件的崛起不僅代表著技術的發展&#xff0c;更象征著一種信息自由和技術民主的理念。其本質是集眾人之智&#xff0c;共同去完善一個軟件&#xff0c;最終使雙方互惠共贏。具體來說&#xff0c;開源的價值&#xff0c;在于打破資源壟斷&#…

Spring的事務管理、AOP實現底層

目錄 spring的事務管理是如何實現的&#xff1f; Spring的AOP的底層實現原理 spring的事務管理是如何實現的&#xff1f; 首先&#xff0c;spring的事務是由aop來實現的&#xff0c;首先要生成具體的代理對象&#xff0c;然后按照aop的整套流程來執行具體的操作邏輯&#xf…

NLP - 基于bert預訓練模型的文本多分類示例

項目說明 項目名稱 基于DistilBERT的標題多分類任務 項目概述 本項目旨在使用DistilBERT模型對給定的標題文本進行多分類任務。項目包括從數據處理、模型訓練、模型評估到最終的API部署。該項目采用模塊化設計&#xff0c;以便于理解和維護。 項目結構 . ├── bert_dat…

蘋果AI的國產大模型之爭,沒有懸念

文 | 智能相對論 作者 | 陳泊丞 蘋果終于公布了最新的AI進程。 一個月前&#xff0c;正如此前預期的那樣&#xff0c;人工智能是今年 WWDC 發布會的焦點。全程105分鐘的主題演講&#xff0c;就有40多分鐘用于介紹蘋果的AI成果。 蘋果似乎還有意玩了一把“諧音梗”&#xff…

用機器改變人類方向

1800 世紀初&#xff0c;美國迎來了工業革命&#xff0c;這是一個由技術進步推動的變革時代。新機器和制造技術的引入重塑了經濟格局&#xff0c;提高了生產效率&#xff0c;同時減少了某些領域對手工勞動的需求。因此&#xff0c;這種轉變導致了失業。 如今&#xff0c;我們看…

實現點擊按鈕導出頁面pdf

在Vue 3 Vite項目中&#xff0c;你可以使用html2canvas和jspdf庫來實現將頁面某部分導出為PDF文檔的功能。以下是一個簡單的實現方式&#xff1a; 1.安裝html2canvas和jspdf&#xff1a; pnpm install html2canvas jspdf 2.在Vue組件中使用這些庫來實現導出功能&#xff1a;…

統計信號處理基礎 習題解答11-11

題目 考慮矢量MAP估計量 證明這個估計量對于代價函數 使貝葉斯風險最小。其中&#xff1a;, &#xff0c;且. 解答 貝葉斯風險函數&#xff1a; 基于概率密度的非負特性&#xff0c;上述對積分要求最小&#xff0c;那就需要內層積分達到最小。令內層積分為&#xff1a; 上述積…

蘋果Mac電腦能玩什么游戲 Mac怎么運行Windows游戲

相對于Windows平臺來說&#xff0c;Mac電腦可玩的游戲較少。雖然蘋果設備的性能足以支持各種大型游戲&#xff0c;但由于系統以及蘋果配套服務的限制&#xff0c;很多游戲無法在Mac系統中運行。不過&#xff0c;借助虛擬機軟件&#xff0c;Mac電腦可以突破系統限制玩更多的游戲…

react中jsx的語法規則

1.react核心庫react.development.js 2.react_dom庫&#xff0c;用于支持react操作dom&#xff08;react-dom.development.js&#xff09; 3.引入bable&#xff0c;解析jsx語法的庫&#xff0c;用于將jsx轉換為js(babel.min.js) 上述三個庫是寫基礎react的基本庫 下面我將用…

光照老化試驗箱在化工產品暴曬測試中的應用

概述 光照老化試驗箱是一種模擬自然光照條件下材料老化情況的實驗設備&#xff0c;廣泛應用于化工、建材、電子、汽車等行業中對材料的耐候性、耐光性能等進行測試。通過模擬日光中的紫外線和溫度等環境因素&#xff0c;加速材料老化過程&#xff0c;以此評估材料在長期使用中…

2024阿里云大模型自定義插件(如何調用自定義接口)

1&#xff0c;自定義插件入口 2&#xff0c;插件定義&#xff1a;描述插件的參數 2.1&#xff0c;注意事項&#xff1a; 2.1.1&#xff0c;只支持json格式的參數&#xff1b;只支持application/JSON&#xff1b;如下圖&#xff1a; 2.1.2&#xff0c;需要把接口描述進行修改&a…

03:Spring MVC

文章目錄 一&#xff1a;Spring MVC簡介1&#xff1a;說說自己對于Spring MVC的了解&#xff1f;1.1&#xff1a;流程說明&#xff1a; 一&#xff1a;Spring MVC簡介 Spring MVC就是一個MVC框架&#xff0c;Spring MVC annotation式的開發比Struts2方便&#xff0c;可以直接代…

LeetCode 算法:二叉搜索樹中第K小的元素 c++

原題鏈接&#x1f517;&#xff1a;二叉搜索樹中第K小的元素 難度&#xff1a;中等???? 題目 給定一個二叉搜索樹的根節點 root &#xff0c;和一個整數 k &#xff0c;請你設計一個算法查找其中第 k 小的元素&#xff08;從1開始計數&#xff09;。 示例 1&#xff1a;…

網絡爬蟲之什么是代碼混淆?初步理解代碼混淆

爬蟲逆向之什么是代碼混淆&#xff1f;初步理解代碼混淆 在網絡爬蟲和逆向工程的過程中&#xff0c;代碼混淆是一項常見的技術&#xff0c;旨在保護代碼不被輕易理解和逆向。對于爬蟲工程師來說&#xff0c;理解并破解代碼混淆是一個重要的技能。本文將詳細介紹代碼混淆的基本概…

GUI開發

Question One Java 實現動作監聽&#xff0c;網格布局添加四個按鈕&#xff0c;實現四個不同的文本顯示 import java.awt.*; import java.awt.event.*; import javax.swing.*;class myGUI extends JFrame implements ActionListener{private Button b1, b2, b3, b4;private Tex…

0627,0628,0629,排序,文件

01&#xff1a;請實現選擇排序&#xff0c;并分析它的時間復雜度&#xff0c;空間復雜度和穩定性 void selection_sort(int arr[], int n); 解答&#xff1a; 穩定性&#xff1a;穩定&#xff0c; 不穩定的&#xff0c;會發生長距離的交換 4 9 9 4 1 &#xf…

ubuntu,linux下屏蔽壞塊方法-240625-240702封存

在windows下的屏蔽壞道的方法 機械硬盤壞道的文件系統級別的屏蔽方法_硬盤如何屏蔽壞扇區-CSDN博客 https://blog.csdn.net/cyuyan112233/article/details/139408503?spm1001.2014.3001.5502 【免費】磁盤壞道屏蔽工具磁盤壞道屏蔽工具_機械硬盤屏蔽壞扇區資源-CSDN文庫 https…

第一周題目總結

1.車爾尼有一個數組 nums &#xff0c;它只包含 正 整數&#xff0c;所有正整數的數位長度都 相同 。 兩個整數的 數位不同 指的是兩個整數 相同 位置上不同數字的數目。 請車爾尼返回 nums 中 所有 整數對里&#xff0c;數位不同之和。 示例 1&#xff1a; 輸入&#xff1a…