OD 完美走位

題目描述:
在第一人稱射擊游戲中,玩家通過鍵盤的ASDW四個按鍵控制游戲人物分別向左、向后、向右、向前進行移動,從而完成走位。假設玩家每按動一次鍵盤,游戲人物會向某個方向移動一步,如果玩家在操作一定次數的鍵盤并且各個方向的步數相同時,此時游戲人物必定會回到原點,則稱此次走位為完美走位。
現給定玩家的走位(例如:ASDA,請通過更換其中一段連續走位的方式使得原走位能夠變成一個完美走位。其中待更換的連續走位可以是相同長度的任何走位。
請返回待更換的連續走位的最小可能長度。
若果原走位本身是一個完美走位,則返回0。
輸入描述:
輸入為由鍵盤字母表示的走位s,例如:ASDA
輸出描述:
輸出為待更換的連續走位的最小可能長度
補充說明:
1、走位長度1 <= s.length <= 10^5
2、s.length 是 4 的倍數
3、s 中只含有 'A', 'S', 'D', 'W' 四種字符
收起
示例1
輸入:
ASDW
輸出:
0
說明:
已經是完美走位了
示例2
輸入:
AASW
輸出:
1
說明:
需要把一個A更換成D,這樣可以得到“ADSW”或者“DASW”
示例3
輸入:
AAAA
輸出:
3
說明:
可以替換后 3'A',得到ASDW
public class 完美走位 {static int minT = 1000000;static String walk;static int w, s, a, d, avg;public static void main(String[] args) {
//        walk =  "AAAA";Scanner scanner = new Scanner(System.in);walk = scanner.nextLine().toUpperCase();avg = walk.length() / 4;w = Math.max(walk.replaceAll("[^W]", "").length() - avg, 0);s = Math.max(walk.replaceAll("[^S]", "").length() - avg, 0);a = Math.max(walk.replaceAll("[^A]", "").length() - avg, 0);d = Math.max(walk.replaceAll("[^D]", "").length() - avg, 0);solveP();}static void solveP() {if (w == s && s == a && a == d) { // 完美情況System.out.println(0);return;}System.out.println(containstr(0, w + s + a + d - 1, minT));}static int containstr(int head, int tail, int minT) {if (tail > walk.length()) {return minT; // 越界即結束}if (countOccurrences(walk.substring(head, tail), 'W') >= w&& countOccurrences(walk.substring(head, tail), 'S') >= s&& countOccurrences(walk.substring(head, tail), 'A') >= a&& countOccurrences(walk.substring(head, tail), 'D') >= d) { // 我們只需要考慮多余的wasd數量即可minT = Math.min(minT, tail - head); // 更新minTreturn containstr(head + 1, tail, minT); // 右邊框右滑} else {return containstr(head, tail + 1, minT); // 左邊框右滑}}static int countOccurrences(String str, char ch) {int length = str.replaceAll("[^" + ch + "]", "").length();return length;}}

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

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

相關文章

layui upload 后臺獲取不到值

后臺獲取不到值方法一&#xff1a; <script>layui.use(upload, function () {var upload layui.upload;//執行實例var uploadInst upload.render({elem: #test1 //綁定元素, url: /Home/UploadFiles //上傳接口, field: "fileNames" //添加這個屬性與后臺…

ueeditor無法上傳圖片_百度ue文本編輯器開發中無法上傳圖片

第一次發文&#xff0c;好緊張呀&#xff0c;不知道會不會沒人看。之前用ue遇到了一些坑&#xff0c;沒人看就當自己記錄了筆記。第一次用&#xff0c;總是會遇到問題&#xff0c;可以先查看下百度ue的演示http://ueditor.baidu.com/website/onlinedemo.html和API http://fex.b…

SQL 語句優化--IN語句優化案例

為什么80%的碼農都做不了架構師&#xff1f;>>> 今天客戶系統升級&#xff0c;通過DMVs性能分析查了一下&#xff0c;升級后發現一個語句執行時間比較長&#xff0c;執行語句要好幾秒鐘&#xff0c;調出語句如下&#xff1a; select distinct field003 from ufi2j0…

Activity跳轉

本例中MainActivity為&#xff1a;FirstActivity.java FirstActivity如下&#xff1a; package com.wyl.intentmultiactivitytest;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.Vie…

Java課程設計---項目數據庫設計(含實體類)

1、數據庫分析設計 將數據庫命名為&#xff1a;db_student 分析系統中各角色之間的關系 2、表設計 &#xff08;1&#xff09;新建表tb_student&#xff08;學生表&#xff09; &#xff08;2&#xff09;新建表tb_admin&#xff08;管理員表&#xff09; &#xff08;3&#x…

java)_Java NIO系列教程(一) Java NIO 概述

原文鏈接 作者&#xff1a;Jakob Jenkov 譯者&#xff1a;airu 校對&#xff1a;丁一Java NIO 由以下幾個核心部分組成&#xff1a;ChannelsBuffersSelectors雖然Java NIO 中除此之外還有很多類和組件&#xff0c;但在我看來&#xff0c;Channel&#xff0c;Buffer…

本地讀取服務器Xml文件及本地讀本地的xml

updateUrl"ServerUrl"(服務器路徑) WebClient wc new WebClient(); Stream stream wc.OpenRead(updateUrl); XmlDocument xmlDoc new XmlDocument(); xmlDoc.Load(stream); XmlNode list xmlDoc.SelectSingleNode("Update"); foreach (XmlNode node in…

Context.getExternalFilesDir()和Context.getExternalCacheDir()方法

2019獨角獸企業重金招聘Python工程師標準>>> Context.getExternalCacheDir()方法可以獲取到 SDCard/Android/data/你的應用包名/cache/目錄&#xff0c;一般存放臨時緩存數據如果使用上面的方法&#xff0c;當你的應用在被用戶卸載后&#xff0c;SDCard/Android/dat…

java 靜態代碼塊_JAVA靜態代碼塊

今天遇到下面的代碼&#xff0c;感覺很奇怪&#xff0c;特意記錄下&#xff1a;代碼如下&#xff1a;public class Test {private static List objs new ArrayList();static {objs.add(new Test(Test.S_NAME,Test.NAME,Test.COUNT));objs.add(new Test(Test.S_NAME,Test.NAME,…

context詳解

1、Context概念&#xff1a; Context&#xff0c;相信不管是第一天開發Android&#xff0c;還是開發Android的各種老鳥&#xff0c;對于Context的使用一定不陌生~~你在加載資源、啟動一個新的Activity、獲取系統服務、獲取內部文件&#xff08;夾&#xff09;路徑、創建View操作…

Unity Camera的兩種模式

http://www.cnblogs.com/zhaoqingqing/p/3302484.html

mysql之group_concat函數

mysql之group_concat函數 在介紹GROUP_CONCAT之前&#xff0c;我們先來看看concat()函數和concat_ws()函數。 先準備一個測試數據庫&#xff1a; mysql> select * from scores; --------------------- | id | name | score | --------------------- | 1 | zhangsan | 1…

java 圖片批量上傳_java實現批量上傳圖片,還要保證每個圖片的順序號,疑問求教!...

rt我要一次性同時上傳n張照片&#xff0c;并且每張照片的順序號還不一樣&#xff0c;第一張的serialno是1&#xff0c;第二張是2。。一開始我做單張圖片上傳&#xff0c;代碼如下RequestMapping("/picUpLoad")ResponseBodypublic Map picUpLoad(MultipartFile file, …

linux 用戶創建、管理、權限分配

&#xff08;1&#xff09;su與sudo su:通過su可以在用戶之間切換&#xff0c;如果超級權限用戶root向普通或虛擬用戶切換不需要密碼&#xff0c;什么是權力&#xff1f;這就是&#xff01;而普通用戶切換到其它任何用戶都需要密碼驗證&#xff1b; sudo: sudo扮演的角色注定了…

WebApi路由

路由分為兩種模式&#xff1a;模板路由和特性路由。 模板路由&#xff1a; 模板路由是ASP.NET Web API默認提供的路由。模板路由使用前需要定義路由模板。如下面默認的路由模板&#xff1a; 默認路由的URL格式是api/{controller}/{id}。api代表在資源前面要帶上api目錄&#xf…

HW--漂亮度2(測試通過)

總結&#xff1a;幾個函數的使用 &#xff08;1&#xff09; int numInteger.parseInt(str[0]); //將第一個字符串轉成整形數&#xff0c;表示名字個數 &#xff08;2&#xff09; String string1str[i].toLowerCase(); //變小寫都 &#xff08;3&#xff09; char ch[]strin…

java設計模式 組合_JAVA 設計模式 組合模式

用途組合模式 (Component)將對象組合成樹形結構以表示“部分-整體”的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有唯一性。組合模式是一種結構型模式。結構圖-組合模式結構圖Component: 組合中的對象聲明接口&#xff0c;在適當的情況下&#xff0c;實現所有類共…

項目總結SpringMVC相關

流程文字概述1、用戶發送請求至前端控制器DispatcherServlet2、DispatcherServlet收到請求調用HandlerMapping處理器映射器。3、處理器映射器找到具體的處理器&#xff0c;生成處理器對象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet。4、DispatcherServlet調用Ha…

SpringBoot登錄登出切面開發

閱讀本文約“2.5分鐘” 本文開發環境是SpringBoot2.X版本。 對于系統而言&#xff08;這里多指管理系統或部分具備登錄登出功能的系統&#xff09;&#xff0c;登錄登出是一個類權限驗證的過程&#xff0c;現在一般是以token進行校驗&#xff0c;即用戶輸入登錄信息&#xff0c…

4、Cocos2dx 3.0三,找一個小游戲開發Hello World 分析

尊重開發人員的勞動成果。轉載的時候請務必注明出處&#xff1a;http://blog.csdn.net/haomengzhu/article/details/27186557Hello World 分析打開新建的"findmistress"項目&#xff0c;能夠看到項目文件是由多個代碼文件及目錄組成的。當中 Hello World 的代碼文件直…