列表圖形列印--------字串處理經典習題
導文
思想,在平時非業務面試或者列印相關圖形時,通常採用列表的形式進行列印,如下就是非常經典的兩練習習題,重要的是思想,思維和方式,具體總結如下:
列印圖形
重點分析
- 每個行和列要對齊,至於多少寬度要根據自動生成時,計算偏移寬度;
- 其實每一行就是一個列表,列表採用” “.join(iterable)字串處理將列表轉換成字串序列,可見” “.join()字串處理函式的重要性
- 最核心的就是計算最後一行的長度,即可知道其他行的偏移量的長度。
- 最後一行才能確定長度
程式碼 實現
#!/bin/python3
#-*- coding: UTF-8 -*-
#created time 2018-04-12
def tri(m):
count = " ".join([str(x) for x in range(m,0,-1)])
length = len(count)
#計算最後一行長度
for i in range(1,m):
cout = " ".join([str(x) for x in range(i,0,-1)])
print('{:>{}}'.format(cout,length))
print(count)
print(tri(12))
為方便測試,將空格替換為#可知:
程式碼實現
#!/bin/python3
#-*- coding: UTF-8 -*-
#created time 2018-04-12
def tri(m):
count = "#".join([str(x) for x in range(m,0,-1)])
length = len(count)
for i in range(1,m):
cout = "#".join([str(x) for x in range(i,0,-1)])
print('{:>{}}'.format(cout,length))
print(count)
print(tri(12))
到序列印
重點分析
- 字串處理將列表轉換為字串,整個第一行就形成str容器
- 依次遞減,採用字串切片,切片條件是什麼?當str[i]等於空格或者其他字元時進行切片
- 整個列表偏移寬度可通過第一行即可知道序列寬度
程式碼實現
先採用#號連線更加方便追蹤
#!/bin/python3
#-*- coding: UTF-8 -*-
#created time 2018-04-12
def tri(m):
count = "#".join([str(x) for x in range(m,0,-1)])
length = len(count)
print(count)
for i in range(length):
if count[i] == "#":
cout = count[i:]
print('{:>{}}'.format(cout,length))
print(tri(12))
列印結果
替換#號程式碼實現
#!/bin/python3
#-*- coding: UTF-8 -*-
#created time 2018-04-12
def tri(m):
count = " ".join([str(x) for x in range(m,0,-1)])
length = len(count)
print(count)
for i in range(length):
if count[i] == " ":
cout = count[i:]
print('{:>{}}'.format(cout,length))
print(tri(12))
執行結果
總結
類似解法
- 通過字串處理+列表生成式,將列表轉換為字串
- 通過字串的長度確定偏移量
- 遞減採用列表或序列切片的方式進行解決
相關推薦
列表圖形列印--------字串處理經典習題
導文 思想,在平時非業務面試或者列印相關圖形時,通常採用列表的形式進行列印,如下就是非常經典的兩練習習題,重要的是思想,思維和方式,具體總結如下: 列印圖形 重點分析 每個行和列要對齊,至於多少寬度要根據自動生成時,計算偏移寬度; 其實每一行就
LintCode 384: Longest Substring Without Repeating Characters (字串處理經典題)
Longest Substring Without Repeating Characters Given a string, find the length of the longest substring without repeating characters. E
ACM經典演算法之字串處理
一、(字串替換) 語法:replace(char str[],char key[],char swap[]); 引數: str[]: 在此源字串進行替換操作 key[]: 被替換的字串,不能為空串 swap[]: 替
關於字串處理的經典問題
串的處理 在實際的開發工作中,對字串的處理是最常見的程式設計任務。 本題目即是要求程式對使用者輸入的串進行處理。具體規則如下: 1. 把每個單詞的首字母變為大寫。 2. 把數字與字母之間用下劃線字元(_)分開,使得更清晰 3. 把單詞中間有多個空格的調整為1個空格。 例如:
oj1967: C/C++經典程式訓練5---圖形列印問題
問題描述:圖形的規則如下 ,要求輸入n的值,按照圖形的列印規則打印出相關的圖形 + +*+ +
C/C++經典程式訓練5---圖形列印問題
+ +*+ +***+ +*****+ +***+ +*+ +#include <stdio.h> int main() { int n,i,j,k; scanf("%d",&n); for(i=1;i<=n;i++) {
移動端APP列表點透事件處理方法
lun 彈窗 效果 tee 兩張 mark turn 方案 nod 關於點透事件這裏不再贅述,如果不清楚的可以上網搜一搜,或者看小火柴的這篇文章。 這裏是自己在做移動端時,在列表滑動的時候,遇到的點透問題。出現這個問題的來由是因為在轉場的時候,各個手機的轉場效果不一樣,有的
Python中的異常處理的習題
and 功能 lambda exce raw log att 偶數 port 1 定義一個函數func(filepath) filepath:為文件名,用with實現打開文件,並且輸出文件內容。 1 # -*- coding: UTF-8 -*- 2 3 4 de
MySQL基本語句與經典習題
添加 where子句 round tac outer num div 通配符 tinc 【SQL語句大全】 本文用到的數據(5張表): customers: orders: orderitems: Products: Vendors: 一、檢索數據-select
內置數據結構列表字符串及相關習題
輸入 ces 大小寫 技術 相關 src 拼接 不可變 雙引號 列表一個隊列,一個排列整齊的隊伍列表內的個體稱作元素,由若幹元素組成列表元素可以是任意對象(數字、字符串、對象、列表等)列表內元素有順序,可以使用索引線性的數據結構使用 [ ] 表示列表是可變的列表與鏈表的列表
2. C語言文件操作經典習題
main pri 多少 linux 文件操作 spa 加密文件 include 加密 1. 統計英文文本文件中,有多少個大寫字母、小寫字母、數字、空格、換行以及其他字符。 #define _CRT_SECURE_NO_WARNINGS #include <stdio
字串處理演算法(六)求2個字串最長公共部分
基礎演算法連結快速通道,不斷更新中: 整型陣列處理演算法部分: 整型陣列處理演算法(一)按照正態分佈來排列整型陣列元素 整型陣列處理演算法(二)檔案中有一組整數,要求排序後輸出到另一個檔案中 整型陣列處理演算法(三)把一個數組裡的所有元素,插入到另一個數組的指定位置 整型陣列
mysql進行字串處理
mysql進行字串的處理 MySQL 字串擷取函式:left(), right(), substring(), substring_index()。還有 mid(), substr()。其中,mid(), substr() 等價於 substring() 函式,substring()
C++筆試題 字串處理
字串處理 描述 定義字串的以下幾種操作: • reverse(A)獲得A字串的逆序字串,例如reverse(“abc”) = “cba” • shuffle(A)獲得A隨機重排的字串,例如shuffle(“dog”) ∈ {“dog”, “dgo”, “odg”, “ogd”,
字串處理-Hdu1004
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1004 題目大意:給你一個數n,要求輸入n個字串,在這n個字串中,我們需要輸出出現次數最多的字串。 這道題看起來的確很簡單,但是卻花了我不少時間,開始時是利用C語言中的char陣列來存這些字串,依次統計,但是做
【C語言】字串處理自定義函式
1、字串求長度 #include <stdio.h> int Mystrlen1(const char *str) { int i=0; while(*(str++)!='\0') { i++; } return i; } int Mystrlen2(cons
E - String of CCPC (字串處理)(str.substr()的運用)
滴答滴答---題目連結 BaoBao has just found a string of length consisting of 'C' and 'P' in his pocket. As a big fan of the China
04: 字串處理 擴充套件的指令碼技巧 正則表示式
Top NSD SHELL DAY04 案例1:字串擷取及切割 案例2:字串初值的處理 案例3:expect預期互動 案例4:使用正則表示式 1 案例1:字串擷取及切割 1.1 問題 使用Shell完成各種Linux運維任務時,一旦涉及到判斷、條
字元和字串處理(2)
2.5 安全字串函式 不安全的字串函式 Strsafe函式 Safe CRT函式 (C執行庫) strcpy, wcscpy, _tcscpy, _mbscpy, strcpy , lstrcpy, _tccpy